232562026-01-16 20:15:15MrkzMaximális szorzat (50 pont)cpp17Wrong answer 5/5068ms3368 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    const int MOD = 1000000007;
    long long N, K, b;
    cin >> N >> K >> b;
    vector<long long> szamok(N);

    for (int i = 0; i < N; i++)
    {
        cin >> szamok[i];
    }

    vector<pair<long long, int>> negs;

    for (int i = 0; i < N; i++)
    {
        if (szamok[i] < 0)
        {

            negs.push_back({szamok[i], i});
        }
    }

    long long eltavolitas = negs.size() - b;
    if (eltavolitas < 0)
    {
        cout << -1 << "\n";
        return 0;
    }
    sort(negs.begin(), negs.end());

    for (int j = 0; j < eltavolitas; j++)
    {
        int idx = negs[j].second;
        K += szamok[idx];
        szamok[idx] = 0;
    }
    if (K < 0)
    {
        cout << -1 << "\n";
        return 0;
    }
    vector<long long> pos;
    for (int i = 0; i < N; i++)
    {
        if (szamok[i] > 0)
            pos.push_back(szamok[i]);
        else if (szamok[i] == 0 && K > 0)
        {
            szamok[i] = 1;
            pos.push_back(1);
            K--;
        }
        }
    sort(pos.begin(), pos.end());

    queue<long long> q;
    for (auto x : pos)
        q.push(x);

    while (K > 0 && !q.empty())
    {
        long long x = q.front();
        q.pop();
        x++;
        q.push(x);
        K--;
    }

    long long res = 1;
    while (!q.empty())
    {
        long long x = q.front();
        q.pop();
        res = (res * ((x + MOD) % MOD)) % MOD;
    }
    cout << res << "\n";

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base5/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Wrong answer0/01ms592 KiB
4Wrong answer0/01ms316 KiB
5Wrong answer0/04ms316 KiB
6Wrong answer0/21ms316 KiB
7Wrong answer0/21ms316 KiB
8Wrong answer0/21ms316 KiB
9Wrong answer0/21ms408 KiB
10Wrong answer0/26ms472 KiB
11Wrong answer0/257ms2592 KiB
12Wrong answer0/159ms2588 KiB
13Wrong answer0/11ms316 KiB
14Wrong answer0/14ms564 KiB
15Accepted1/119ms1440 KiB
16Wrong answer0/123ms1944 KiB
17Accepted1/125ms1944 KiB
18Wrong answer0/19ms804 KiB
19Wrong answer0/150ms3352 KiB
20Wrong answer0/143ms3368 KiB
21Wrong answer0/164ms3356 KiB
22Wrong answer0/137ms3240 KiB
23Wrong answer0/164ms2840 KiB
24Wrong answer0/161ms2600 KiB
25Wrong answer0/21ms356 KiB
26Wrong answer0/26ms824 KiB
27Wrong answer0/232ms1944 KiB
28Wrong answer0/132ms1956 KiB
29Accepted2/219ms1948 KiB
30Wrong answer0/164ms3240 KiB
31Accepted1/134ms1076 KiB
32Wrong answer0/22ms316 KiB
33Wrong answer0/264ms3352 KiB
34Wrong answer0/167ms3364 KiB
35Wrong answer0/264ms3364 KiB
36Wrong answer0/264ms3240 KiB
37Wrong answer0/268ms3320 KiB
38Wrong answer0/264ms3356 KiB
39Wrong answer0/12ms316 KiB