Cod sursa(job #3188590)
Utilizator | Serban Alexandru AlexSerban21 | Data | 3 ianuarie 2024 13:52:35 |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <fstream>
#define ll long long
using namespace std;
ifstream fin ("grupuri.in");
ofstream fout ("grupuri.out");
ll sum,k,v[100001],st,dr,mij;
int n,i;
bool f (ll val)
{
sum=0;
for (i=1; i<=n; i++)
sum+=min (v[i],val);
if (sum>=k*val)
return 1;
else
return 0;
}
int main ()
{
fin>>k>>n;
for (i=1; i<=n; i++)
fin>>v[i];
st=1;
dr=100000000000;
while (st<=dr)
{
mij=(st+dr)/2;
if (f (mij)==1)
st=mij+1;
else
dr=mij-1;
}
fout<<dr;
return 0;
}