189222025-11-12 17:23:41KristófMaximális szorzat (50 pont)cpp17Runtime error 43/5079ms1040 KiB
#include <iostream>
#include <vector>
#include <queue>
using namespace std;

long long mod=1000000007;


int main()
{
    int n,k,b;
    cin>>n>>k>>b;
    priority_queue<int> negativ,poz;
    int x;
    for(int i=0;i<n;i++)
        {
        cin>>x;
        if(x>-1)
            {
            poz.push(x*-1);
            }
        else
            {
            negativ.push(x);
            }
        }
    if(negativ.size()<b)
        {
        cout<<-1;
        return 0;
        }
    if(negativ.size() == b)
        {
        while(k--)
            {
            x=poz.top()*-1;poz.pop();
            poz.push((x+1)*-1);
            }
        }
    else
        {
        while(negativ.size()!=b && negativ.size()>0)
            {
            k+=negativ.top();
            if(k<0)
                {
                cout<<-1;
                return 0;
                }
            poz.push(0);
            negativ.pop();
            }
        while(k-- && !poz.empty())
            {
            x=poz.top()*-1;poz.pop();
            poz.push((x+1)*-1);
            }
        }


    long long ans=1;
    while(!poz.empty())
        {

        ans*=(poz.top()*-1)% mod;poz.pop();
        ans = ans % mod;
        }
    while(!negativ.empty())
        {
        ans*=abs(negativ.top()) % mod;negativ.pop();
        ans = ans % mod;
        }
    cout<<ans;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base43/50
1Accepted0/01ms500 KiB
2Accepted0/01ms316 KiB
3Accepted0/01ms508 KiB
4Accepted0/01ms316 KiB
5Accepted0/04ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/27ms604 KiB
11Accepted2/271ms800 KiB
12Accepted1/178ms976 KiB
13Accepted1/11ms316 KiB
14Accepted1/17ms316 KiB
15Accepted1/117ms712 KiB
16Accepted1/141ms760 KiB
17Accepted1/117ms784 KiB
18Accepted1/113ms680 KiB
19Runtime error0/135ms1040 KiB
20Runtime error0/126ms932 KiB
21Runtime error0/150ms940 KiB
22Runtime error0/121ms944 KiB
23Accepted1/179ms896 KiB
24Accepted1/179ms944 KiB
25Accepted2/22ms316 KiB
26Accepted2/27ms316 KiB
27Runtime error0/227ms704 KiB
28Runtime error0/126ms760 KiB
29Accepted2/219ms632 KiB
30Accepted1/168ms808 KiB
31Accepted1/135ms944 KiB
32Accepted2/22ms512 KiB
33Accepted2/270ms968 KiB
34Accepted1/171ms992 KiB
35Accepted2/272ms940 KiB
36Accepted2/268ms960 KiB
37Accepted2/268ms944 KiB
38Accepted2/268ms1004 KiB
39Accepted1/12ms316 KiB