Pagini recente » Cod sursa (job #467380) | Cod sursa (job #1125022) | Cod sursa (job #1550386) | Cod sursa (job #3242020) | Cod sursa (job #2924458)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
#define DIM 100000
int n, k, v[DIM + 1];
long long s;
static inline bool Check(int mid) {
int total = 0;
for(int i = 1; i <= n; i++)
total += min(v[i], mid); //nu pot pune mai mult de mid animale in mid grupuri
return (total >= mid * k);
}
int main() {
fin >> k >> n;
for(int i = 1; i <= n; i++) {
fin >> v[i];
s += v[i];
}
int st = 1, dr = s / k, poz = 0;
//cea mai mare pozitie(cel mai mare nr de grupuri);
while(st <= dr) {
int mid = (st + dr) >> 1;
if(Check(mid)) {
poz = mid;
st = mid + 1;
}else dr = mid - 1;
}
fout << poz;
return 0;
}