Pagini recente » Cod sursa (job #2451035) | Cod sursa (job #341255) | Cod sursa (job #955595) | Cod sursa (job #105415) | Cod sursa (job #262775)
Cod sursa(job #262775)
#include<stdio.h>
int v[100001],i,k,s,ok,p,u,l,m,n,nr,max,mij;
int cond(int x){
m=0;nr=0;
for(i=1;i<=n;i++)
{if(v[i]>=x)
nr++;
else
{m+=v[i] ;
nr+=m/x;
m%=x;}
}
if(nr>=k&&mij>max)
{max=mij;return 0;}
if(nr<=k)return 1;
return 0;
}
int main(){
FILE *f=fopen("grupuri.in","r");
fscanf(f,"%d%d",&k,&n);
for(i=1;i<=n;i++)
{fscanf(f,"%d",&v[i]);
s+=v[i];}
fclose(f);
p=1;
u=s/k;
FILE *g=fopen("grupuri.out","w");
while(p<=u)
{mij=(p+u)>>1;
ok=cond(mij);
if(!ok)
p=mij+1;
else
u=mij-1;
}
fprintf(g,"%d",max);
fclose(g);
return 0;}