139202025-01-09 10:59:32NeMMaximális szorzat (50 pont)cpp17Hibás válasz 15/50600ms1080 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--;

			for (int i = 0; i <= ln; i++) {
				a[i] *= -1;
			}
		} else {
			a[0] += k;
			k = 0;
		}
	}

	while (k > 0) {
		int mi = 0, m = INT_MAX;
		for (int i = 0; i < n; i++) {
			if (a[i] < m) {
				m = a[i];
				mi = i;
			}
		}

		a[mi]++;
		k--;
	}


	long long c = 1;
	for (int i = 0; i < n; i++) {
		c *= a[i];
		c = c % 1000000007;
	}
	cout << endl << c;
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base15/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms500 KiB
3Hibás válasz0/01ms316 KiB
4Hibás válasz0/01ms316 KiB
5Hibás válasz0/041ms476 KiB
6Elfogadva2/21ms376 KiB
7Elfogadva2/21ms508 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/2196ms476 KiB
11Időlimit túllépés0/2600ms1056 KiB
12Időlimit túllépés0/1600ms1060 KiB
13Hibás válasz0/16ms316 KiB
14Hibás válasz0/1430ms316 KiB
15Elfogadva1/120ms564 KiB
16Időlimit túllépés0/1587ms564 KiB
17Elfogadva1/121ms564 KiB
18Hibás válasz0/19ms564 KiB
19Időlimit túllépés0/1583ms1076 KiB
20Időlimit túllépés0/1598ms1064 KiB
21Időlimit túllépés0/1600ms1060 KiB
22Időlimit túllépés0/1584ms1076 KiB
23Időlimit túllépés0/1583ms1056 KiB
24Időlimit túllépés0/1600ms1056 KiB
25Hibás válasz0/24ms316 KiB
26Hibás válasz0/2104ms316 KiB
27Időlimit túllépés0/2584ms564 KiB
28Időlimit túllépés0/1582ms564 KiB
29Elfogadva2/223ms564 KiB
30Időlimit túllépés0/1600ms1076 KiB
31Elfogadva1/141ms1076 KiB
32Hibás válasz0/2201ms316 KiB
33Időlimit túllépés0/2582ms1080 KiB
34Időlimit túllépés0/1584ms1076 KiB
35Időlimit túllépés0/2586ms1076 KiB
36Időlimit túllépés0/2583ms1076 KiB
37Időlimit túllépés0/2591ms1064 KiB
38Időlimit túllépés0/2584ms1076 KiB
39Hibás válasz0/121ms316 KiB