Mai intai trebuie sa te autentifici.
Cod sursa(job #2396160)
Utilizator | Data | 3 aprilie 2019 11:40:28 | |
---|---|---|---|
Problema | Grupuri | Scor | 66 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream fin ("grupuri.in");
ofstream fout ("grupuri.out");
int a[100005], sp[100005], n, k;
bool check(int x) {
int p = 0;
for (int i = n - k + 1; i <= n; ++i) {
if (a[i] < x)
p += x - a[i];
}
if (p <= sp[n - k])
return true;
return false;
}
int main() {
fin >> k >> n;
for (int i = 1; i <= n; ++i) {
fin >> a[i];
sp[i] = sp[i - 1] + a[i];
}
int st = 0, dr = sp[n], mij, ans = 0;
while (st <= dr) {
mij = (st + dr) / 2;
if (check(mij)) {
st = mij + 1;
ans = mij;
} else
dr = mij - 1;
}
fout << ans;
return 0;
}