Pagini recente » Cod sursa (job #3033421) | Cod sursa (job #2934348) | Cod sursa (job #3286665) | Cod sursa (job #1824665) | Cod sursa (job #1668700)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int k,n,a[100005]; long long suma=0;
void citire()
{
f>>k>>n;
for(int i=1;i<=n;i++)
{
f>>a[i];suma+=(long long) a[i];
}
}
long long bin()
{
long long st=1,dr=suma,h,s=0;
while(st<=dr)
{
h=(long long) (st+dr)/2;
s=0;
for(int i=1;i<=n;i++) if(a[i]<h) s+=a[i];else s+=h;
if(s/k>=h) {st=h+1;} else dr=h-1;
}
s=0;
while(1==1){ for(int i=1;i<=n;i++) if(a[i]<h) s+=a[i];else s+=h; if(s/k>=h) return st; else return st-1;h--;}
}
void solve()
{
g<<bin();
}
int main()
{
citire();
solve();
return 0;
}