246422026-02-13 08:58:51szjMaximális szorzat (50 pont)cpp17Wrong answer 44/5056ms2732 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;
    priority_queue<ll, vector<ll>, greater<ll>> szervkereskedelem;
    for(i=0; i<n; i++)
    {
        cin >> a;
        if(a<0)nega.push(a);
        else pozi.push(a);
    }
    if(b>nega.size())
    {
        cout <<-1;
        return 0;
    }
    while(nega.size()>b)
    {
        k+=nega.top();
        nega.pop();
        pozi.push(0);
    }
    if(k<0)
    {
        cout << -1;
        return 0;
    }
    if(pozi.empty())
    {
        while(!nega.empty())
        {
            szervkereskedelem.push(nega.top());
            nega.pop();
        }
    }
    if(!pozi.empty())
    {
        while(k!=0)
        {
            a = pozi.top();
            pozi.pop();
            pozi.push(a+1);
            k--;
        }
    }
    if(!szervkereskedelem.empty())
    {
        while(k!=0)
        {
            a = szervkereskedelem.top();
            if(a>=0)
            {
                cout << -1;
                return 0;
            }
            szervkereskedelem.pop();
            szervkereskedelem.push(a+1);
            k--;
        }
    }
    while(!pozi.empty())
    {
        sum=(sum*(abs(pozi.top())blugy))blugy;
        pozi.pop();
    }
    while(!nega.empty())
    {
        sum=(sum*(abs(nega.top()))blugy)blugy;
        nega.pop();
    }
    cout << sum;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base44/50
1Accepted0/01ms500 KiB
2Accepted0/01ms316 KiB
3Accepted0/01ms316 KiB
4Accepted0/01ms316 KiB
5Accepted0/03ms564 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/24ms564 KiB
11Accepted2/239ms1364 KiB
12Accepted1/143ms1528 KiB
13Accepted1/11ms508 KiB
14Accepted1/14ms596 KiB
15Accepted1/18ms884 KiB
16Accepted1/127ms1132 KiB
17Accepted1/18ms948 KiB
18Accepted1/16ms944 KiB
19Wrong answer0/152ms2632 KiB
20Wrong answer0/146ms2732 KiB
21Wrong answer0/156ms2732 KiB
22Accepted1/132ms2536 KiB
23Accepted1/145ms1340 KiB
24Accepted1/143ms1560 KiB
25Accepted2/21ms316 KiB
26Accepted2/24ms564 KiB
27Wrong answer0/234ms1576 KiB
28Wrong answer0/134ms1520 KiB
29Accepted2/28ms1012 KiB
30Accepted1/135ms1452 KiB
31Accepted1/114ms1452 KiB
32Accepted2/22ms316 KiB
33Accepted2/235ms1468 KiB
34Accepted1/135ms1456 KiB
35Accepted2/237ms1456 KiB
36Accepted2/235ms1456 KiB
37Accepted2/235ms1460 KiB
38Accepted2/235ms1456 KiB
39Accepted1/12ms316 KiB