232532026-01-16 20:03:44MrkzMaximális szorzat (50 pont)cpp17Wrong answer 6/5078ms4540 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--;
        }
        else
        {
            pos.push_back(szamok[i]);
        }
    }
    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
base6/50
1Accepted0/01ms316 KiB
2Accepted0/01ms508 KiB
3Wrong answer0/01ms316 KiB
4Accepted0/01ms316 KiB
5Wrong answer0/04ms316 KiB
6Wrong answer0/21ms316 KiB
7Wrong answer0/21ms316 KiB
8Wrong answer0/21ms316 KiB
9Wrong answer0/21ms316 KiB
10Wrong answer0/26ms564 KiB
11Wrong answer0/257ms2728 KiB
12Wrong answer0/161ms2584 KiB
13Wrong answer0/11ms316 KiB
14Wrong answer0/14ms564 KiB
15Accepted1/119ms1200 KiB
16Wrong answer0/124ms1708 KiB
17Accepted1/125ms2220 KiB
18Accepted1/112ms1452 KiB
19Wrong answer0/163ms4528 KiB
20Wrong answer0/152ms4384 KiB
21Wrong answer0/178ms4516 KiB
22Wrong answer0/143ms4540 KiB
23Wrong answer0/170ms3496 KiB
24Wrong answer0/161ms2732 KiB
25Wrong answer0/22ms508 KiB
26Wrong answer0/26ms820 KiB
27Wrong answer0/239ms2452 KiB
28Wrong answer0/139ms2452 KiB
29Accepted2/219ms1964 KiB
30Wrong answer0/164ms3356 KiB
31Accepted1/134ms1200 KiB
32Wrong answer0/23ms316 KiB
33Wrong answer0/264ms3496 KiB
34Wrong answer0/178ms4516 KiB
35Wrong answer0/264ms3360 KiB
36Wrong answer0/264ms3240 KiB
37Wrong answer0/264ms3364 KiB
38Wrong answer0/264ms4240 KiB
39Wrong answer0/12ms508 KiB