120792024-11-30 12:19:05DávidPontos átlag 2cpp17Elfogadva 100/100126ms3528 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

bool f(ll x, ll k, vector<ll> arak) {
	ll cel = arak.size() * k;
	for(int i = 0; i < arak.size(); i++) {
		cel -= arak[i];
	}
	for(int i = 0; i < arak.size(); i++) {
		if(cel > 0) cel -= min(cel, x);
		else if(cel < 0) cel += min(abs(cel), min(arak[i] - 1, x));
	}
	return cel == 0;
}

int main() {
	ll n, k;
	cin >> n >> k;

	vector<ll> arak(n);

	for(int i = 0; i < n; i++) {
		cin >> arak[i];
	}

	ll l = -1, r = 1e15;
	while(l < r - 1) {
		ll kozep = (l + r) / 2;
		if(f(kozep, k, arak)) {
			r = kozep;
		} else {
			l = kozep;
		}
	}

	cout << r << endl;
	
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms320 KiB
2Elfogadva1ms500 KiB
subtask210/10
3Elfogadva1ms320 KiB
4Elfogadva1ms320 KiB
5Elfogadva1ms320 KiB
6Elfogadva1ms320 KiB
7Elfogadva1ms512 KiB
8Elfogadva1ms324 KiB
subtask320/20
9Elfogadva64ms3384 KiB
10Elfogadva65ms3384 KiB
11Elfogadva63ms3228 KiB
12Elfogadva64ms3228 KiB
13Elfogadva65ms3384 KiB
14Elfogadva65ms3384 KiB
15Elfogadva68ms3384 KiB
16Elfogadva74ms3512 KiB
17Elfogadva1ms320 KiB
subtask424/24
18Elfogadva1ms320 KiB
19Elfogadva1ms320 KiB
20Elfogadva1ms320 KiB
21Elfogadva1ms320 KiB
22Elfogadva2ms388 KiB
23Elfogadva1ms320 KiB
24Elfogadva1ms320 KiB
25Elfogadva1ms320 KiB
26Elfogadva1ms320 KiB
27Elfogadva1ms396 KiB
28Elfogadva1ms320 KiB
subtask546/46
29Elfogadva68ms3516 KiB
30Elfogadva89ms3512 KiB
31Elfogadva61ms2040 KiB
32Elfogadva82ms2988 KiB
33Elfogadva111ms3384 KiB
34Elfogadva119ms3488 KiB
35Elfogadva116ms3508 KiB
36Elfogadva126ms3528 KiB
37Elfogadva126ms3504 KiB
38Elfogadva107ms3300 KiB
39Elfogadva43ms1480 KiB
40Elfogadva3ms436 KiB
41Elfogadva1ms320 KiB