116562024-11-03 17:26:40MagyarKendeSZLGMaximális szorzat (50 pont)cpp17Futási hiba 43/5075ms1556 KiB
#include <algorithm>
#include <cassert>
#include <iostream>
#include <queue>
#include <vector>

using namespace std;
using ll = long long;

const ll MOD = 1e9 + 7;

int main() {
    ll N, K, B;
    cin >> N >> K >> B;

    vector<ll> neg;
    priority_queue<ll, vector<ll>, greater<ll>> pq;

    for (int i = 0; i < N; i++) {
        ll x;
        cin >> x;
        if (x < 0) {
            neg.push_back(x);
        } else {
            pq.push(x);
        }
    }

    if (neg.size() < B) {
        cout << "-1\n";
        exit(0);
    }

    sort(neg.begin(), neg.end());
    ll result = 1;

    for (int i = 0; i < B; i++) {
        result *= -neg[i];
        result %= MOD;
    }

    for (int i = B; i < neg.size(); i++) {
        K += neg[i];
        pq.push(0);
    }

    if (K < 0) {
        cout << "-1\n";
        exit(0);
    }

    while (K--) {
        ll mn = pq.top();
        pq.pop();
        pq.push((mn + 1) % MOD);
    }

    while (!pq.empty()) {
        ll mn = pq.top();
        pq.pop();
        result *= mn;
        result %= MOD;
    }

    cout << result << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base43/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/01ms320 KiB
3Elfogadva0/01ms320 KiB
4Elfogadva0/01ms320 KiB
5Elfogadva0/04ms568 KiB
6Elfogadva2/21ms320 KiB
7Elfogadva2/21ms320 KiB
8Elfogadva2/21ms320 KiB
9Elfogadva2/21ms320 KiB
10Elfogadva2/27ms572 KiB
11Elfogadva2/271ms1452 KiB
12Elfogadva1/175ms1544 KiB
13Elfogadva1/11ms320 KiB
14Elfogadva1/17ms480 KiB
15Elfogadva1/119ms896 KiB
16Elfogadva1/137ms948 KiB
17Elfogadva1/120ms948 KiB
18Elfogadva1/112ms948 KiB
19Futási hiba0/143ms1532 KiB
20Futási hiba0/132ms1552 KiB
21Futási hiba0/161ms1552 KiB
22Futási hiba0/125ms1556 KiB
23Elfogadva1/175ms1100 KiB
24Elfogadva1/175ms1456 KiB
25Elfogadva2/22ms320 KiB
26Elfogadva2/26ms568 KiB
27Futási hiba0/229ms948 KiB
28Futási hiba0/129ms992 KiB
29Elfogadva2/218ms948 KiB
30Elfogadva1/161ms1460 KiB
31Elfogadva1/135ms1452 KiB
32Elfogadva2/23ms320 KiB
33Elfogadva2/261ms1520 KiB
34Elfogadva1/163ms1556 KiB
35Elfogadva2/264ms1452 KiB
36Elfogadva2/261ms1460 KiB
37Elfogadva2/261ms1404 KiB
38Elfogadva2/261ms1556 KiB
39Elfogadva1/12ms320 KiB