158692025-03-06 20:10:52NeMMaximális szorzat (50 pont)cpp17Hibás válasz 16/5063ms2120 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	long long n, k, b, ln = -1;
    cin >> n >> k >> b;
    vector <long long> a (2*n, 0);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    for (int i = 0; i < n; i++) {
        if (a[i] < 0) {
            ln = i;
        }
    }

    if (b > ln+1) {
        cout << -1;
        return 0;
    }
    while (b < ln+1) {
        if (k >= -1*a[ln]) {
            k += a[ln];
            a[ln] = 0;
            ln--;
        } else {
            cout << -1;
            return 0;
        }
    }
    long long p = ln+1;
    while (k > 0) {
        a[p]++;
        k--;
        if (p+1 != n) {
            if (a[p+1] < a[p]) {
                p++;
            } else {
                p = ln + 1;
            }
        } else {
            p = ln + 1;
        }
    }

    long long s = 1;
    for (int i = 0; i < n; i++) {
        s *= abs(a[i]);
        s = s % 1000000007;
    }
    cout << s;
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base16/50
1Hibás válasz0/01ms500 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Hibás válasz0/04ms564 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/21ms316 KiB
10Hibás válasz0/26ms572 KiB
11Hibás válasz0/256ms1976 KiB
12Hibás válasz0/159ms2120 KiB
13Hibás válasz0/11ms544 KiB
14Hibás válasz0/14ms756 KiB
15Elfogadva1/121ms1192 KiB
16Hibás válasz0/125ms1076 KiB
17Elfogadva1/123ms1188 KiB
18Elfogadva1/112ms1196 KiB
19Futási hiba0/145ms1972 KiB
20Futási hiba0/134ms1976 KiB
21Futási hiba0/163ms1980 KiB
22Futási hiba0/128ms1976 KiB
23Hibás válasz0/163ms2028 KiB
24Hibás válasz0/159ms1844 KiB
25Hibás válasz0/21ms316 KiB
26Hibás válasz0/26ms756 KiB
27Futási hiba0/230ms1076 KiB
28Futási hiba0/130ms1192 KiB
29Elfogadva2/224ms1076 KiB
30Elfogadva1/163ms1844 KiB
31Elfogadva1/146ms1844 KiB
32Elfogadva2/22ms316 KiB
33Hibás válasz0/261ms2028 KiB
34Hibás válasz0/163ms1844 KiB
35Hibás válasz0/263ms1976 KiB
36Elfogadva2/261ms2024 KiB
37Elfogadva2/261ms1844 KiB
38Elfogadva2/261ms1972 KiB
39Elfogadva1/11ms316 KiB