141642025-01-10 07:57:25NeMMaximális szorzat (50 pont)python3Futási hiba 0/5017ms3052 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;
		}

		return 69;
	}

	long long s = k;
	for (int i = ln+2; i < n+1; i++) {
		s += a[i-1];

		if (a[i] >= s/(i-(ln+1))) {
			int d = s/(i-(ln+1)), r = s%(i-(ln+1));
			for (int j = ln+1; j < i; j++) {
				k -= (d-a[j]);
				a[j] += (d-a[j]);

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

			break;
		}
	}


	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
base0/50
1Futási hiba0/016ms2880 KiB
2Futási hiba0/016ms2868 KiB
3Futási hiba0/016ms2856 KiB
4Futási hiba0/016ms2856 KiB
5Futási hiba0/016ms3004 KiB
6Futási hiba0/214ms3048 KiB
7Futási hiba0/214ms3040 KiB
8Futási hiba0/216ms2880 KiB
9Futási hiba0/214ms3052 KiB
10Futási hiba0/214ms3012 KiB
11Futási hiba0/216ms3016 KiB
12Futási hiba0/114ms3036 KiB
13Futási hiba0/114ms3040 KiB
14Futási hiba0/114ms2864 KiB
15Futási hiba0/116ms2952 KiB
16Futási hiba0/114ms3012 KiB
17Futási hiba0/114ms3048 KiB
18Futási hiba0/114ms2984 KiB
19Futási hiba0/117ms3044 KiB
20Futási hiba0/116ms2928 KiB
21Futási hiba0/114ms3044 KiB
22Futási hiba0/114ms2868 KiB
23Futási hiba0/116ms2876 KiB
24Futási hiba0/114ms2824 KiB
25Futási hiba0/214ms3040 KiB
26Futási hiba0/214ms3048 KiB
27Futási hiba0/216ms2872 KiB
28Futási hiba0/114ms2880 KiB
29Futási hiba0/216ms3052 KiB
30Futási hiba0/114ms2848 KiB
31Futási hiba0/116ms2972 KiB
32Futási hiba0/214ms2928 KiB
33Futási hiba0/216ms3044 KiB
34Futási hiba0/114ms2872 KiB
35Futási hiba0/214ms3004 KiB
36Futási hiba0/216ms2984 KiB
37Futási hiba0/216ms2868 KiB
38Futási hiba0/214ms2976 KiB
39Futási hiba0/114ms2880 KiB