116502024-11-03 17:00:11MagyarKendeSZLGMaximális szorzat (50 pont)cpp17Hibás válasz 6/5078ms3752 KiB
#include <algorithm>
#include <iostream>
#include <queue>
#include <vector>

using namespace std;
using ll = long long;

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

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

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

    sort(neg.rbegin(), neg.rend());
    ll result = 1;
    for (int i = 0; i < B; i++) {
        result *= neg.back();
        neg.pop_back();
    }

    priority_queue<ll, vector<ll>, greater<ll>> pq;
    for (int i = 0; i < pos.size(); i++) {
        pq.push(pos[i]);
    }
    for (int i = 0; i < neg.size(); i++) {
        pq.push(neg[i]);
    }

    for (int i = 0; i < K; i++) {
        int mn = pq.top();
        pq.pop();
        pq.push(mn + 1);
    }

    while (!pq.empty()) {
        int mn = pq.top();
        if (mn < 0) {
            cout << "-1\n";
            exit(0);
        }
        pq.pop();
        result *= mn;
    }

    cout << result << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/01ms320 KiB
3Elfogadva0/01ms508 KiB
4Elfogadva0/01ms320 KiB
5Hibás válasz0/04ms672 KiB
6Hibás válasz0/21ms320 KiB
7Hibás válasz0/21ms320 KiB
8Hibás válasz0/21ms320 KiB
9Hibás válasz0/22ms508 KiB
10Hibás válasz0/27ms568 KiB
11Hibás válasz0/271ms3496 KiB
12Hibás válasz0/178ms3628 KiB
13Hibás válasz0/12ms320 KiB
14Hibás válasz0/17ms472 KiB
15Elfogadva1/129ms1468 KiB
16Hibás válasz0/137ms1536 KiB
17Elfogadva1/130ms1204 KiB
18Elfogadva1/112ms1560 KiB
19Futási hiba0/145ms1900 KiB
20Futási hiba0/132ms1712 KiB
21Futási hiba0/163ms2320 KiB
22Futási hiba0/126ms1688 KiB
23Hibás válasz0/176ms2884 KiB
24Hibás válasz0/178ms3752 KiB
25Hibás válasz0/21ms508 KiB
26Hibás válasz0/26ms672 KiB
27Futási hiba0/232ms1464 KiB
28Futási hiba0/130ms1464 KiB
29Elfogadva2/223ms1292 KiB
30Hibás válasz0/163ms2224 KiB
31Elfogadva1/139ms3248 KiB
32Hibás válasz0/22ms500 KiB
33Hibás válasz0/264ms2240 KiB
34Hibás válasz0/164ms2300 KiB
35Hibás válasz0/267ms2224 KiB
36Hibás válasz0/263ms2220 KiB
37Hibás válasz0/263ms2224 KiB
38Hibás válasz0/263ms2364 KiB
39Hibás válasz0/12ms500 KiB