139312025-01-09 11:29:56NeMMaximális szorzat (50 pont)cpp17Hibás válasz 19/5059ms1164 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k, b, ln = 0;
	cin >> n >> k >> b;
	vector <int> a (n, INT_MIN);
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	sort(a.begin(), a.end());
	a.push_back(INT_MAX);
	for (int i = 0; i < n+1; i++) {
		if (a[i] >= 0) {
			ln = i-1;
			break;
		}
	}
	

	if (ln < b-1) {
		cout << -1;
		return 0;
	}

	while (ln > b-1) {
		if (k == 0) {
			cout << -1;
			return 0;
		}

		if (a[ln] < 0) {
			a[ln]++;
			k--;
		} else {
			ln--;
		}
	}

	if (ln%2 == 0) {
		if ((a[ln]*-1) >= k) {
			k += a[ln];
			a[ln] = 0;
			ln--;
		} else {
			a[0] += k;
			k = 0;
		}
	}

	long long s = k;
	for (int i = ln+1; i < n; i++) {
		s += a[i];
	}
	int d = s/(n-(ln+1)), r = s%(n-(ln+1));
	for (int i = ln+1; i < n; i++) {
		k -= d-a[i];
		a[i] += d-a[i];

		if (r > 0) {
			a[i]++;
			r--;
		}
	}


	long long c = 1;
	for (int i = 0; i < n; i++) {
		c *= a[i];
		c = c % 1000000007;
	}
	cout << c;
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base19/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Hibás válasz0/04ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/21ms316 KiB
10Hibás válasz0/24ms432 KiB
11Hibás válasz0/252ms1060 KiB
12Hibás válasz0/157ms1056 KiB
13Hibás válasz0/11ms316 KiB
14Hibás válasz0/14ms440 KiB
15Elfogadva1/120ms612 KiB
16Hibás válasz0/121ms604 KiB
17Elfogadva1/121ms564 KiB
18Hibás válasz0/19ms604 KiB
19Hibás válasz0/141ms1068 KiB
20Hibás válasz0/129ms1064 KiB
21Hibás válasz0/159ms1076 KiB
22Hibás válasz0/124ms1076 KiB
23Hibás válasz0/159ms1060 KiB
24Hibás válasz0/157ms1056 KiB
25Elfogadva2/21ms316 KiB
26Hibás válasz0/26ms316 KiB
27Hibás válasz0/229ms604 KiB
28Hibás válasz0/129ms604 KiB
29Elfogadva2/223ms608 KiB
30Elfogadva1/159ms1164 KiB
31Elfogadva1/141ms1064 KiB
32Elfogadva2/21ms316 KiB
33Elfogadva2/259ms1056 KiB
34Hibás válasz0/159ms1060 KiB
35Hibás válasz0/259ms1072 KiB
36Elfogadva2/259ms1052 KiB
37Elfogadva2/259ms1060 KiB
38Elfogadva2/259ms1056 KiB
39Elfogadva1/11ms316 KiB