Cod sursa(job #2396437)
| Utilizator | Data | 3 aprilie 2019 15:09:17 | |
|---|---|---|---|
| Problema | Grupuri | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
long long n,k,a[100005];
int ok(long long x)
{
long long s=0;
for (int i=1;i<=n;i++)
s+=min(x,a[i]);
if (s>=x*k)
return 1;
return 0;
}
int cautare()
{
long long l=1;
long long r=100000000000;
long long mid=0;
while(r-l>1)
{
mid=(l+r)/2;
if (ok(mid))
l=mid;
else
r=mid;
}
return l;
}
int main()
{
fin>>k>>n;
for (int i=1;i<=n;i++)
fin>>a[i];
int nr=cautare();
fout<<nr<<'\n';
}
