Pagini recente » Cod sursa (job #761123) | Cod sursa (job #2542169) | Cod sursa (job #741681) | Cod sursa (job #654992) | Cod sursa (job #262637)
Cod sursa(job #262637)
#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)
return 0;
m+=v[i];
nr+=m/x;
m%=x;
}
if(nr==k&&(!m))
max=mij;
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;
if(max)
{fprintf(g,"%d",max);
fclose(g);
return 0;}
}
fprintf(g,"%d",max);
fclose(g);
return 0;}