Cod sursa(job #2137935)
Utilizator | Data | 21 februarie 2018 10:02:03 | |
---|---|---|---|
Problema | Grupuri | Scor | 74 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
#define DIM 100002
using namespace std;
ifstream fin ("grupuri.in");
ofstream fout ("grupuri.out");
int n,k,i,st,dr,mid,s,v[DIM];
int verif (int x){
int nr = 0;
for (int i=1;i<=n;i++){
if (v[i] <= x)
nr += v[i];
else
nr += x;
}
if (nr >= x*k)
return 1;
return 0;
}
int main (){
fin>>k>>n;
for (i=1;i<=n;i++){
fin>>v[i];
s += v[i];
}
st = 1;
dr = s/k;
while (st <= dr){
mid = (st+dr)/2;
if (verif(mid))
st = mid+1;
else
dr = mid-1;
}
fout<<dr;
return 0;
}