Pagini recente » Cod sursa (job #181023) | Cod sursa (job #500800) | Cod sursa (job #1274188) | Cod sursa (job #1945286) | Cod sursa (job #3235294)
#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];
long long nr_max;
void reading(){
fin >> len >> n;
for(int i = 1; i <= n; i++){ fin >> nr[i]; nr_max += nr[i];}
}
bool is_good(long long nr_grupe){
long long S = 0;
for(int i = 1; i <= n && S < nr_grupe * len; i++){
S += min(1LL * nr[i], nr_grupe);
}
if(S >= nr_grupe * len) return 1;
return 0;
}
int main() {
reading();
long long L = 0, R = nr_max / len + 10;
long long 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;
}