Pagini recente » Cod sursa (job #1893850) | Cod sursa (job #2983389) | Cod sursa (job #2178606) | Cod sursa (job #216114) | Cod sursa (job #2351181)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
long long n,k,st,dr,mid;
long long a[100010];
int verif(long long p){
long long nr=0;
for(int i=1;i<=n;i++)
nr+=min(a[i],p);
if(nr<p*k)
return 0;
return 1;
}
int main(){
fin>>k>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
st=0;
dr=2000000000;
/// caut binar raspunsul
while(st<=dr){
mid=st+(dr-st)/2;
/// verific daca pot forma atatea grupuri
if(verif(mid))
st=mid+1;
else
dr=mid-1;
}
fout<<dr;
return 0;
}