189182025-11-12 17:03:14KristófMaximális szorzat (50 pont)cpp17Hibás válasz 6/5076ms2140 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();
            poz.push(0);
            negativ.pop();
            }
        if(k<0)
            {
            cout<<-1;
            return 0;
            }
        while(k--)
            {
            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();
        }
    while(!negativ.empty())
        {
        ans*=negativ.top() % mod;negativ.pop();
        }
    cout<<ans;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Hibás válasz0/04ms416 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/22ms316 KiB
10Hibás válasz0/27ms564 KiB
11Hibás válasz0/270ms1636 KiB
12Hibás válasz0/175ms1788 KiB
13Hibás válasz0/12ms316 KiB
14Hibás válasz0/17ms316 KiB
15Elfogadva1/117ms820 KiB
16Hibás válasz0/139ms1072 KiB
17Elfogadva1/117ms932 KiB
18Elfogadva1/113ms792 KiB
19Futási hiba0/135ms1404 KiB
20Futási hiba0/127ms1412 KiB
21Futási hiba0/152ms2140 KiB
22Futási hiba0/123ms1308 KiB
23Hibás válasz0/176ms1792 KiB
24Hibás válasz0/175ms1708 KiB
25Hibás válasz0/21ms316 KiB
26Hibás válasz0/26ms564 KiB
27Futási hiba0/227ms1268 KiB
28Futási hiba0/127ms1316 KiB
29Elfogadva2/219ms1004 KiB
30Hibás válasz0/168ms1776 KiB
31Elfogadva1/135ms1572 KiB
32Hibás válasz0/23ms316 KiB
33Hibás válasz0/268ms1784 KiB
34Hibás válasz0/168ms1964 KiB
35Hibás válasz0/271ms1964 KiB
36Hibás válasz0/268ms1840 KiB
37Hibás válasz0/268ms1956 KiB
38Hibás válasz0/270ms1964 KiB
39Hibás válasz0/12ms316 KiB