142772025-01-10 11:32:12TundeMaximális szorzat (50 pont)cpp17Időlimit túllépés 6/50600ms1184 KiB
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    long long n, k, b, db=0;
    long long szor=1;
    cin >> n >> k >> b;
    long long t[n];
    for(int i=0; i<n; i++)
    {
        cin >> t[i];
        if(t[i]<0)
            ++db;
    }
    if(db<b)
        cout << -1;
    else
    {
        sort(t, t+n);
        long long i=0;
        while(db>b && i<k)
        {
            if(db%2==0)
            {
                if((t[db-1]+t[db-2])+(k-i)>=0)
                {
                    t[db-2]=0;
                    t[db-1]=0;
                    i-=t[db-2];
                    i-=t[db-1];
                    db=db-2;
                }
                else
                    i=k+1;
            }
            else
            {
                if(t[db-1]+k>=0)
                {
                    i-=t[db-1];
                    t[db-1]=0;
                    db--;
                }
                else
                {
                    i=k+1;
                }
            }
        }
        if(db!=b)
            cout << -1;
        else
        {
            while(i<k)
            {
                t[b]++;
                sort(t+b, t+n);
                i++;
            }
            for(int i=0; i<n; i++)
            {
                szor*=t[i];
                if(szor==0)
                    break;
            }
            cout << szor%(1000000000+7);
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Időlimit túllépés0/0598ms412 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/218ms400 KiB
10Időlimit túllépés0/2600ms316 KiB
11Időlimit túllépés0/2600ms1060 KiB
12Időlimit túllépés0/1580ms1080 KiB
13Hibás válasz0/161ms316 KiB
14Időlimit túllépés0/1600ms316 KiB
15Időlimit túllépés0/1600ms692 KiB
16Időlimit túllépés0/1598ms552 KiB
17Időlimit túllépés0/1582ms564 KiB
18Elfogadva1/19ms752 KiB
19Hibás válasz0/139ms1076 KiB
20Hibás válasz0/128ms1076 KiB
21Hibás válasz0/157ms1000 KiB
22Hibás válasz0/123ms1076 KiB
23Időlimit túllépés0/1589ms1012 KiB
24Időlimit túllépés0/1600ms1124 KiB
25Hibás válasz0/27ms500 KiB
26Hibás válasz0/29ms316 KiB
27Hibás válasz0/228ms612 KiB
28Hibás válasz0/128ms776 KiB
29Elfogadva2/217ms564 KiB
30Hibás válasz0/157ms1084 KiB
31Elfogadva1/141ms964 KiB
32Hibás válasz0/23ms316 KiB
33Hibás válasz0/257ms1068 KiB
34Hibás válasz0/163ms1184 KiB
35Hibás válasz0/2149ms1080 KiB
36Hibás válasz0/257ms1076 KiB
37Hibás válasz0/257ms1080 KiB
38Hibás válasz0/257ms1076 KiB
39Hibás válasz0/12ms316 KiB