245672026-02-12 19:58:24szjMaximális szorzat (50 pont)cpp17Hibás válasz 41/5043ms1648 KiB
#include <bits/stdc++.h>
#define ll long long
#define blugy %1000000007
using namespace std;
class cucc
{
public:
    bool operator()(const ll &x, const ll &y)const
    {
        return x < y;
    }
};
int main()
{
    //ifstream cin("f.txt");
    ios::sync_with_stdio(0);
    cin.tie(0);
    ll n, k, b, i, a, sum=1, parsum=0, el;
    cin >> n >> k >> b;
    priority_queue<ll, vector<ll>, cucc> nega;
    priority_queue<ll, vector<ll>, greater<ll>> pozi;
    for(i=0; i<n; i++)
    {
        cin >> a;
        if(a<0)nega.push(a);
        else pozi.push(a);
    }
    while(nega.size()>b)
    {
        k+=nega.top();
        nega.pop();
        pozi.push(0);
    }
    if(k<0)
    {
        cout << -1;
        return 0;
    }
    if(!pozi.empty())
    {
        while(k!=0)
        {
            a = pozi.top();
            pozi.pop();
            pozi.push(a+1);
            k--;
        }
    }
    else
    {
        while(k!=0)
        {
            a=nega.top();
            nega.pop();
            nega.push(a+1);
            k--;
        }
    }
    while(!pozi.empty())
    {
        sum=(sum*(pozi.top())blugy)blugy;
        pozi.pop();
    }
    while(!nega.empty())
    {
        sum=(sum*(nega.top()+1000000007)blugy)blugy;
        nega.pop();
    }
    cout << sum;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base41/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Elfogadva0/03ms564 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms508 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/24ms564 KiB
11Elfogadva2/241ms1492 KiB
12Elfogadva1/143ms1384 KiB
13Elfogadva1/11ms508 KiB
14Elfogadva1/14ms564 KiB
15Elfogadva1/18ms884 KiB
16Elfogadva1/128ms952 KiB
17Elfogadva1/18ms1132 KiB
18Elfogadva1/16ms948 KiB
19Hibás válasz0/139ms1432 KiB
20Hibás válasz0/139ms1452 KiB
21Hibás válasz0/143ms1376 KiB
22Hibás válasz0/128ms1540 KiB
23Elfogadva1/143ms1348 KiB
24Elfogadva1/143ms1488 KiB
25Elfogadva2/21ms316 KiB
26Elfogadva2/24ms564 KiB
27Hibás válasz0/227ms952 KiB
28Hibás válasz0/127ms1040 KiB
29Hibás válasz0/227ms1204 KiB
30Elfogadva1/135ms1648 KiB
31Elfogadva1/114ms1340 KiB
32Elfogadva2/22ms316 KiB
33Elfogadva2/235ms1540 KiB
34Elfogadva1/135ms1456 KiB
35Elfogadva2/237ms1460 KiB
36Elfogadva2/235ms1456 KiB
37Elfogadva2/234ms1472 KiB
38Elfogadva2/234ms1456 KiB
39Elfogadva1/12ms316 KiB