Pagini recente » Cod sursa (job #2819172) | Cod sursa (job #225332) | Cod sursa (job #3234106) | Cod sursa (job #923125) | Cod sursa (job #265149)
Cod sursa(job #265149)
#include<stdio.h>
long long int v[100001],i,k,s,ok,p,u,l,m,n,nr,max,mij;
int cond(long long 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)
{max=mij;
return 1;
}
return 0;
}
int main(){
FILE *f=fopen("grupuri.in","r");
fscanf(f,"%lld%lld",&k,&n);
for(i=1;i<=n;i++)
{fscanf(f,"%lld",&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,"%lld",max);
fclose(g);
return 0;}