Cod sursa(job #2308999)
Utilizator | Data | 28 decembrie 2018 11:34:20 | |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f ("grupuri.in");
ofstream g ("grupuri.out");
int main()
{
int64_t N,K,s;
f>>K>>N;
vector<int64_t> V(N+1);
for(int i=1;i<=N;i++)
f>>V[i],s+=V[i];
int64_t l=1,r=s/K,m;
while(l<=r)
{
m=(l+r)/2;
s=0;
for(int i=1;i<=N;i++) s+=min(m,V[i]);
if(s>=K*m) l=m+1;
else r=m-1;
}
g<<r;
return 0;
}