Cod sursa(job #2353640)
Utilizator | Data | 24 februarie 2019 14:14:44 | |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
using namespace std;
long long n, k, st, dr, a[100001], s, i, mid;
int numar (int x)
{
long long nr=0;
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 fin ("grupuri.in");
ofstream fout ("grupuri.out");
fin>>k>>n;
for (i=1;i<=n;i++) {
fin>>a[i];
s+=a[i];
}
st=1;
dr=s/k;
while (st<=dr) {
mid = (st+dr)/2;
if (numar(mid))
st=mid+1;
else
dr=mid-1;
}
fout<<dr;
return 0;
}