Cod sursa(job #1502352)
Utilizator | Data | 14 octombrie 2015 16:29:59 | |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
int k,n,x,a[100009],i;
long long mj,st,dr;
inline bool OK(long long x)
{
int i;long long nr=0LL;
for(i=1;i<=n;++i)
if(a[i]<x) nr+=a[i];
else nr+=x;
if(nr/k>=x) return 1;
return 0;
}
int main()
{
ifstream f("grupuri.in");
ofstream g("grupuri.out");
f>>k>>n;long long sum=0LL;
for(i=1;i<=n;++i) f>>a[i], sum+=a[i];
st=1LL;dr=sum;
while(st<=dr)
{
mj=(1LL*st+1LL*dr)/2LL;
if(OK(mj)) st=mj+1LL;
else dr=mj-1LL;
}
g<<dr<<'\n';
return 0;
}