Pagini recente » Diferente pentru problema/logik intre reviziile 20 si 21 | Diferente pentru problema/chiftea intre reviziile 20 si 10 | Cod sursa (job #1970234) | Cod sursa (job #1794799) | Cod sursa (job #2295882)
#include <fstream>
using namespace std;
ifstream f ("grupuri.in");
ofstream g ("grupuri.out");
long long k,n,st,dr,mid,s,v[100003];
int main()
{
f>>k>>n;
for(int i=1;i<=n;++i)
{
f>>v[i];
s+=v[i];
}
st=1;
dr=s/k;
while(st<=dr)
{
mid=(st+dr)/2;
s=0;
for(int i=1;i<=n;++i) s+=min(mid,v[i]);
if(s>=k*mid) st=mid+1;
else dr=mid-1;
}
g<<dr;
return 0;
}