155392025-02-20 11:38:04GervidMaximális szorzat (50 pont)cpp17Futási hiba 43/5029ms1224 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <limits.h>
#include <algorithm>
#include <math.h>

using namespace std;

long long m = 1e9 + 7;

int main()
{
	iostream::sync_with_stdio(0);
	cin.tie(0);

	int n, k, b, i;
	cin >> n >> k >> b;

	int startnegatives = 0;
	vector<long long> a(n);
	for (i = 0; i < n; i++)
	{
		cin >> a[i];
		if (a[i] < 0) startnegatives++;
	}
	if (startnegatives < b)
	{
		cout << -1;
		return 0;
	}

	sort(a.begin(), a.end());
	int firstnonneg = 0;
 	while (firstnonneg == n - 1 || (firstnonneg < n-1 && a[firstnonneg] < 0)) firstnonneg++;
	for (int i = b; i < firstnonneg; i++)
	{
		k += a[i];
		a[i] = 0;
	}
	if (k < 0)
	{
		cout << -1;
		return 0;
	}
	firstnonneg = b;

	i = firstnonneg;
	while (k > 0)
	{
		a[i]++;
		k--;
		if (i == n-1 || a[i] <= a[i + 1]) i = firstnonneg;
		else i++;
	}

	long long product = 1;
	for (i = 0; i < n; i++)
	{
		product = (product * a[i]) % m;
	}
	cout << product;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base43/50
1Elfogadva0/01ms500 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms508 KiB
4Elfogadva0/01ms316 KiB
5Elfogadva0/03ms316 KiB
6Elfogadva2/21ms508 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms528 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/23ms316 KiB
11Elfogadva2/227ms1128 KiB
12Elfogadva1/128ms1076 KiB
13Elfogadva1/11ms428 KiB
14Elfogadva1/13ms508 KiB
15Elfogadva1/110ms820 KiB
16Elfogadva1/113ms820 KiB
17Elfogadva1/110ms820 KiB
18Elfogadva1/17ms820 KiB
19Futási hiba0/120ms1224 KiB
20Futási hiba0/116ms1216 KiB
21Futási hiba0/127ms1216 KiB
22Futási hiba0/112ms1220 KiB
23Elfogadva1/129ms1212 KiB
24Elfogadva1/128ms1076 KiB
25Elfogadva2/21ms316 KiB
26Elfogadva2/23ms500 KiB
27Futási hiba0/214ms820 KiB
28Futási hiba0/113ms820 KiB
29Elfogadva2/27ms820 KiB
30Elfogadva1/128ms1076 KiB
31Elfogadva1/121ms1136 KiB
32Elfogadva2/22ms508 KiB
33Elfogadva2/228ms1080 KiB
34Elfogadva1/128ms1076 KiB
35Elfogadva2/228ms1076 KiB
36Elfogadva2/228ms1076 KiB
37Elfogadva2/228ms1076 KiB
38Elfogadva2/228ms1076 KiB
39Elfogadva1/11ms316 KiB