Pagini recente » Cod sursa (job #2287240) | Cod sursa (job #2874602) | Cod sursa (job #3193898) | Cod sursa (job #2298580) | Cod sursa (job #1501279)
#include <iostream>
#include<cstdio>
using namespace std;
int v[100001];
int main()
{
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
long long n, k, i, l1, l2, mij, s=0, rasp=0, sum;
scanf("%I64d%I64d", &k, &n);
for(i=1;i<=n;i++){
scanf("%d", &v[i]);
s+=v[i];
}
l1=1;l2=s/k;
while(l1<=l2)
{
mij=(l1+l2)/2;
sum=0;
for(i=1;i<=n;i++){
if(v[i]<=mij)
sum+=v[i];
else sum+=mij;
}
if(sum<mij*k)
l2=mij-1;
else{
rasp=mij;
l1=mij+1;
}
}
printf("%I64d", rasp);
return 0;
}