Pagini recente » Cod sursa (job #700072) | Cod sursa (job #264490)
Cod sursa(job #264490)
#include <stdio.h>
int n, k, i, c[100111];
long long S,U,P,Mij,Sol;
int min(long long a, long long b){
if(a < b)
return a;
return b;
}
int cont(long long X){
long long scr = 0, sf = X * (long long)k;
for(i = 1; i <= n; i++){
scr+=min(c[i], X);
if(scr >= sf)
return 1;
}
return 0;
}
int main(){
FILE *f = fopen("grupuri.in","r");
FILE *g = fopen("grupuri.out","w");
fscanf(f,"%d %d",&k,&n);
for(i=1; i<=n; i++){
fscanf(f,"%d",&c[i]);
S+=(long long)c[i];
}
P = 1;
U = S/(long long)k;
while(P <= U){
Mij = (P + U) >> 1;
if(cont(Mij)){
Sol = Mij;
P = Mij + 1;
}
else
U = Mij - 1;
}
fprintf(g,"%lld",Sol);
fclose(f);
fclose(g);
return 0;
}