Cod sursa(job #1074334)
| Utilizator | Data | 7 ianuarie 2014 16:25:16 | |
|---|---|---|---|
| Problema | Grupuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("grupuri.in");
ofstream g ("grupuri.out");
#define nmax 100000000000
#define maxn 100000
int n,k,v[maxn],i;
int check (long long x)
{
int i;
long long s=0;
for (i=0;i<x;i++)
if(v[i]>x)
s+=x;
else
s+=v[i];
if(s<x*k)
return 0;
return 1;
}
int main()
{
f>>k>>n;
for (i=0;i<n;i++)
f>>v[i];
long long step=1<<30;
for (i=0;step;step/=2)
if(i+step<nmax && check(i+step)==1)
i+=step;
g<<i<<'\n';
f.close();
g.close();
return 0;
}
