155402025-02-20 11:43:58GervidMaximális szorzat (50 pont)cpp17Wrong answer 44/5028ms1316 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;

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

	long long product = 1;
	for (i = 0; i < n; i++)
	{
		product = (product * a[i]) % m;
	}
	cout << product;
}
//6 2 6
//-1 -2 -1 -2 -3 -1
SubtaskSumTestVerdictTimeMemory
base44/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted0/01ms316 KiB
4Accepted0/01ms316 KiB
5Accepted0/03ms372 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/23ms520 KiB
11Accepted2/226ms1076 KiB
12Accepted1/126ms1076 KiB
13Accepted1/11ms316 KiB
14Accepted1/13ms316 KiB
15Accepted1/110ms820 KiB
16Accepted1/112ms820 KiB
17Accepted1/19ms820 KiB
18Accepted1/16ms820 KiB
19Wrong answer0/119ms1076 KiB
20Wrong answer0/114ms1076 KiB
21Wrong answer0/127ms1076 KiB
22Accepted1/110ms1076 KiB
23Accepted1/128ms1268 KiB
24Accepted1/126ms1080 KiB
25Accepted2/21ms316 KiB
26Accepted2/23ms316 KiB
27Wrong answer0/214ms776 KiB
28Wrong answer0/114ms604 KiB
29Accepted2/27ms820 KiB
30Accepted1/128ms1264 KiB
31Accepted1/120ms1076 KiB
32Accepted2/21ms316 KiB
33Accepted2/228ms1076 KiB
34Accepted1/127ms1152 KiB
35Accepted2/228ms1076 KiB
36Accepted2/227ms1076 KiB
37Accepted2/228ms1316 KiB
38Accepted2/228ms1264 KiB
39Accepted1/11ms316 KiB