189212025-11-12 17:23:07KristófMaximális szorzat (50 pont)cpp17Futási hiba 43/5076ms1040 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 )
            {
            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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base43/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Elfogadva0/04ms548 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms404 KiB
10Elfogadva2/27ms512 KiB
11Elfogadva2/268ms944 KiB
12Elfogadva1/174ms880 KiB
13Elfogadva1/11ms316 KiB
14Elfogadva1/17ms316 KiB
15Elfogadva1/117ms564 KiB
16Elfogadva1/139ms792 KiB
17Elfogadva1/117ms680 KiB
18Elfogadva1/112ms692 KiB
19Futási hiba0/135ms944 KiB
20Futási hiba0/128ms960 KiB
21Futási hiba0/150ms944 KiB
22Futási hiba0/123ms996 KiB
23Elfogadva1/176ms904 KiB
24Elfogadva1/175ms944 KiB
25Elfogadva2/22ms316 KiB
26Elfogadva2/26ms508 KiB
27Futási hiba0/226ms736 KiB
28Futási hiba0/126ms688 KiB
29Elfogadva2/219ms620 KiB
30Elfogadva1/170ms1040 KiB
31Elfogadva1/135ms948 KiB
32Elfogadva2/23ms316 KiB
33Elfogadva2/270ms944 KiB
34Elfogadva1/171ms944 KiB
35Elfogadva2/274ms948 KiB
36Elfogadva2/271ms944 KiB
37Elfogadva2/270ms944 KiB
38Elfogadva2/270ms904 KiB
39Elfogadva1/13ms316 KiB