Cod sursa(job #491582)
| Utilizator | Data | 11 octombrie 2010 20:07:48 | |
|---|---|---|---|
| Problema | Transport | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.43 kb |
#include <stdio.h>
int n,k,i,v[16010];
long min,max,s=0,nr,suma;
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++){
scanf("%d",&v[i]);
if(v[i]>s){
s=v[i];
}
max+=v[i];
}
min=s;
suma =max;
while(min<max){
nr=(min+max)/2;
if(suma/nr<k){
max=nr-1;
}else{
min=nr+1;
}
}
printf("%d",nr+1);
return 0;
}
