Pagini recente » Cod sursa (job #1839768) | Cod sursa (job #2876150) | Cod sursa (job #1809352) | Cod sursa (job #229575) | Cod sursa (job #3282137)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
#define ll long long
ll N, K, suma;
vector<ll> animale;
int check(ll x) {
ll sum = 0;
for (int i = 1; i <= N; i++) {
sum += min(x, animale[i]);
}
return sum >= K * x;
}
int cb(int n, int k) {
ll poz = 0;
ll dr = suma;
for (int step = 1 << 30; step > 0; step >>= 1) {
if (poz + step <= dr && check(poz + step)) {
poz += step;
}
}
return poz;
}
int main() {
fin >> K >> N;
animale.resize(N + 1);
for (int i = 1; i <= N; ++i) {
fin >> animale[i];
suma += animale[i];
}
fout << cb(N, K) + 1;
}
/*
AGAGHJHAHAHAHAHAHAHAHH AM CITIT PANA LA K CE AM IN CAP
*/