Pagini recente » Simulare 45 | Cod sursa (job #2636999) | Cod sursa (job #1890401) | Cod sursa (job #1592404) | Cod sursa (job #3235293)
#include <iostream>
#include <fstream>
#define N_max 100005
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int len, n;
int nr[N_max];
int nr_max;
void reading(){
fin >> len >> n;
for(int i = 1; i <= n; i++){ fin >> nr[i]; nr_max += nr[i];}
}
bool is_good(int nr_grupe){
int S = 0;
for(int i = 1; i <= n && S < nr_grupe * len; i++){
S += min(nr[i], nr_grupe);
}
if(S >= nr_grupe * len) return 1;
return 0;
}
int main() {
reading();
int L = 0, R = nr_max / len + 10;
int sol = 0;
while(L <= R){
int mij = (L + R) / 2;
if(is_good(mij)){
sol = mij;
L = mij + 1;
}else{
R = mij - 1;
}
}
fout << sol;
}