158402025-03-04 19:43:37NeMMaximális szorzat (50 pont)python3Runtime error 0/5016ms3284 KiB
/*#include <bits/stdc++.h>
using namespace std;

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

    if (b > ln+1) {
        cout << -1;
        return 0;
    }
    while (b < ln+1) {
        if (k >= -1*a[ln]) {
            k += a[ln];
            a[ln] = 0;
            ln--;
        } else {
            cout << -1;
            return 0;
        }
    }

	return 0;
}*/

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k, b, ln = 0;
	cin >> n >> k >> b;
	vector <long long> 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--;
		}
	}

    for (int i = 0; i < n; i++) {
        if (a[i] < 0) {
            a[i] *= -1;
        }
    }
    sort(a.begin(), a.end());

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

			if (a[i] >= s/(i-(ln+1))) {
				long long 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;
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Runtime error0/016ms2824 KiB
2Runtime error0/014ms2868 KiB
3Runtime error0/016ms2868 KiB
4Runtime error0/016ms2868 KiB
5Runtime error0/014ms2992 KiB
6Runtime error0/216ms2992 KiB
7Runtime error0/214ms3004 KiB
8Runtime error0/214ms2980 KiB
9Runtime error0/214ms2868 KiB
10Runtime error0/216ms2872 KiB
11Runtime error0/216ms3024 KiB
12Runtime error0/114ms2868 KiB
13Runtime error0/116ms2972 KiB
14Runtime error0/114ms2824 KiB
15Runtime error0/114ms2944 KiB
16Runtime error0/116ms2868 KiB
17Runtime error0/116ms2992 KiB
18Runtime error0/114ms2852 KiB
19Runtime error0/114ms2924 KiB
20Runtime error0/114ms3040 KiB
21Runtime error0/116ms3100 KiB
22Runtime error0/114ms2868 KiB
23Runtime error0/116ms2968 KiB
24Runtime error0/116ms2868 KiB
25Runtime error0/216ms2840 KiB
26Runtime error0/216ms2856 KiB
27Runtime error0/214ms2900 KiB
28Runtime error0/116ms2888 KiB
29Runtime error0/216ms2868 KiB
30Runtime error0/114ms2872 KiB
31Runtime error0/116ms2992 KiB
32Runtime error0/216ms3284 KiB
33Runtime error0/216ms2868 KiB
34Runtime error0/116ms2864 KiB
35Runtime error0/214ms2920 KiB
36Runtime error0/214ms2872 KiB
37Runtime error0/216ms2912 KiB
38Runtime error0/216ms3040 KiB
39Runtime error0/114ms3224 KiB