Pagini recente » Cod sursa (job #164155) | Cod sursa (job #1010622) | Cod sursa (job #594126) | Cod sursa (job #2577396) | Cod sursa (job #472921)
Cod sursa(job #472921)
#include<iostream>
#include<fstream>
using namespace std;
int a[100010];
int grup(int n, int k, int ng){
int s = 0, i;
for (i = n; i >= 1; i--){
if ( a[i] > ng)
s = s + ng;
else
s = s + a[i];
}
if ( s >= ng * k)
return 1;
return 0;
}
int main(){
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int n, k;
int i, j, s = 0, p, u, sol, m;
f>>k>>n;
for (i = 1; i <= n; i++){
f>>a[i];
s = s+a[i];
}
s = s/k;
p = a[1];
u = s;
sol = p;
while (p <= u){
m = (p+u)/2;
if (grup(n, k, m) == 1){
sol = m;
p = m+1;
}
else
u = m-1;
}
g<<sol<<'\n';
return 0;
}