120782024-11-30 12:17:14DávidPontos átlag 2cpp17Hibás válasz 0/100114ms3536 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 = 0, r = 1e10;
	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
2Elfogadva1ms320 KiB
subtask20/10
3Elfogadva1ms320 KiB
4Elfogadva1ms320 KiB
5Elfogadva1ms320 KiB
6Elfogadva1ms320 KiB
7Hibás válasz1ms320 KiB
8Elfogadva1ms320 KiB
subtask30/20
9Elfogadva54ms3516 KiB
10Elfogadva56ms3520 KiB
11Hibás válasz52ms3404 KiB
12Elfogadva52ms3384 KiB
13Elfogadva54ms3384 KiB
14Elfogadva54ms3528 KiB
15Elfogadva57ms3388 KiB
16Elfogadva61ms3380 KiB
17Elfogadva1ms320 KiB
subtask40/24
18Elfogadva2ms324 KiB
19Elfogadva1ms320 KiB
20Elfogadva1ms320 KiB
21Elfogadva1ms500 KiB
22Elfogadva1ms508 KiB
23Elfogadva1ms320 KiB
24Elfogadva1ms320 KiB
25Hibás válasz1ms508 KiB
26Elfogadva1ms320 KiB
27Elfogadva1ms320 KiB
28Elfogadva1ms320 KiB
subtask50/46
29Elfogadva57ms3536 KiB
30Elfogadva78ms3520 KiB
31Elfogadva54ms2040 KiB
32Elfogadva75ms2988 KiB
33Elfogadva100ms3504 KiB
34Elfogadva108ms3384 KiB
35Hibás válasz108ms3504 KiB
36Elfogadva114ms3512 KiB
37Elfogadva114ms3384 KiB
38Elfogadva98ms3384 KiB
39Elfogadva39ms1480 KiB
40Elfogadva3ms320 KiB
41Elfogadva1ms508 KiB