Pagini recente » Cod sursa (job #1820011) | Cod sursa (job #2866859) | Cod sursa (job #1717345) | Cod sursa (job #2944960) | Cod sursa (job #1501274)
#include <iostream>
#include <fstream>
using namespace std;
int v[100001];
int main()
{
ifstream fin ("grupuri.in");
ofstream fout ("grupuri.out");
int k,n,i,s=0,dr,st,m=0,p,suma=0;
fin>>k>>n;
for(i=1; i<=n; i++)
{
fin>>v[i];
s+=v[i];
}
st=1;
dr=s/k;
while(st<=dr)
{
//cout<<st<<" "<<dr<<"\n";
m=(st+dr)/2;
suma=0;
for(i=1; i<=n; i++)
if(v[i]>=m)
suma+=m;
else
suma+=v[i];
if(suma<m*k)
{
dr=m-1;
//p=m;
}
else {
st=m+1;
p=m;
}
}
fout<<p;
return 0;
}