Cod sursa(job #288300)
| Utilizator | Data | 25 martie 2009 18:11:04 | |
|---|---|---|---|
| Problema | Grupuri | Scor | 88 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.78 kb |
#include <stdio.h>
long long v[100001];
long long st,dr,na,mid,sol,i,n,k,sum;
void cbin (int st, int dr)
{
while (st<=dr){
na=0;
mid=(st+dr)/2;
for (i=1;i<=n;i++){
if (v[i]>mid) na=na+mid;
else na=na+v[i];
}
if (na>=mid*k) {
st=mid+1;
sol=mid;
}
else dr=mid-1;
}
}
int main ()
{
freopen ("grupuri.in","r",stdin);
freopen ("grupuri.out","w",stdout);
scanf ("%lld %lld",&k,&n);
for (i=1;i<=n;i++){
scanf ("%lld",&v[i]);
sum=sum+v[i];
}
cbin (1,sum);
printf ("%lld",sol);
}
