Pagini recente » Cod sursa (job #775562) | Cod sursa (job #2606050) | Cod sursa (job #580708) | Cod sursa (job #3132375) | Cod sursa (job #265192)
Cod sursa(job #265192)
#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){
long long int i,sum=x*k;
for(i=1;i<=n&&nr<=sum;i++)
if(v[i]<x)nr+=v[i];
else
nr+=x;
if(nr>=sum)
{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;}