239492026-02-02 11:57:25SzeredaiNatanaelMaximális szorzat (50 pont)cpp17Accepted 50/5057ms1316 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	int n, k, b; cin >> n >> k >> b;
	vector<int> v(n);
	for (int i = 0; i < n; i++) cin >> v[i];

	sort(v.begin(), v.end());
	const int c = b;

	if (b != 0 && v[b - 1] >= 0){
		cout << -1;
		return 0;
	}
	if (n == b) b = 0;
	
	if (v[b + 1] - v[b] < k) {
		int r = b + 1;
		while (k - (r - b) * (v[r] - v[r - 1]) >= 0 && r < n) {
			k -= (r - b) * (v[r] - v[r - 1]);
			++r;
		}
		--r;

		for (int i = b; i < r; ++i) 
			v[i] = v[r];
		for (int i = b; i <= r; ++i) 
			v[i] += k / (r - b + 1);

		k = k % (r - b + 1);
		for (int i = b; i < b + k; ++i)
			++v[i];
	}
	else {
		v[b] += k;
	}

	if (n == c) {
		for (int i = 0; i < n; ++i) {
			if (v[i] >= 0) {
				cout << -1; 
				return 0; 
			}
		}
	}
	else if (v[b] < 0) {
		cout << -1;
		return 0;
	}

	long long p = 1; 
	int mod = 1000000007;
	for (int i = 0; i < n; i++)
		p = (p * v[i]) % mod;
	cout << p;

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms500 KiB
3Accepted0/01ms508 KiB
4Accepted0/01ms316 KiB
5Accepted0/04ms572 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/24ms316 KiB
11Accepted2/252ms748 KiB
12Accepted1/154ms564 KiB
13Accepted1/11ms316 KiB
14Accepted1/14ms316 KiB
15Accepted1/119ms564 KiB
16Accepted1/121ms564 KiB
17Accepted1/120ms824 KiB
18Accepted1/19ms564 KiB
19Accepted1/139ms564 KiB
20Accepted1/129ms564 KiB
21Accepted1/157ms800 KiB
22Accepted1/123ms564 KiB
23Accepted1/157ms564 KiB
24Accepted1/154ms564 KiB
25Accepted2/21ms316 KiB
26Accepted2/24ms316 KiB
27Accepted2/228ms568 KiB
28Accepted1/128ms564 KiB
29Accepted2/221ms760 KiB
30Accepted1/157ms800 KiB
31Accepted1/141ms568 KiB
32Accepted2/21ms316 KiB
33Accepted2/257ms1056 KiB
34Accepted1/157ms568 KiB
35Accepted2/257ms564 KiB
36Accepted2/257ms564 KiB
37Accepted2/257ms564 KiB
38Accepted2/257ms1316 KiB
39Accepted1/11ms316 KiB