147412025-01-31 10:41:15markfsibianMaximális szorzat (50 pont)cpp17Hibás válasz 3/50600ms760 KiB
#include <iostream>
#include <climits>

using namespace std;

int neg, n, up, v[100001];

int main()
{
    cin >> n >> up >> neg;
    int mini = INT_MAX, t, ind, negs = 0, z = 0;
    for (int i = 1; i <= n; ++i)
    {

        cin >> t;
        if (t < 0)
            negs++;
        if (t == 0)
            z++;
        v[i] = t;
    }
    
    
    int negmaxi, negind, f = 0;
    while (negs > neg)
    {
        negmaxi = INT_MIN;
        for (int i = 1; i <= n; ++i)
        {
            if (v[i] > negmaxi && v[i] < 0)
            {
                negind = i;
                negmaxi = v[i];
            }
        }
        v[negind] = v[negind] + up;
        up = 0;
        if (v[negind] - 1 > 0)
        {
            up = v[negind] - 1;
            v[negind] = 1;
        }
        if (v[negind] < 0)
        {
            f = 1;
            break;
        }
        negs--;
        
    }

    if (f)
        cout << -1;
    else
    {

        

        while (z > 0)
        {
            for (int i = 1; i <= n; ++i)
                if (v[i] == 0 && up > 0)
                {
                    v[i] = 1;
                    up--;
                    z--;
                }
            
        }
        

        while (up)
        {
            for (int i = 1; i <= n; ++i)
            {

                if (v[i] < mini && v[i] > 0)
                {
                    mini = v[i];
                    ind = i;
                }
            }
            v[ind]++;
            up--;
            mini++;
            
        }
        
        

        int s = 1;
        for (int i = 1; i <= n; ++i)
            s = s * v[i];
        cout << endl << s << endl;
    }

}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms508 KiB
5Hibás válasz0/0136ms444 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/24ms316 KiB
10Hibás válasz0/2335ms452 KiB
11Időlimit túllépés0/2600ms576 KiB
12Időlimit túllépés0/1577ms536 KiB
13Hibás válasz0/112ms316 KiB
14Időlimit túllépés0/1582ms316 KiB
15Elfogadva1/1338ms756 KiB
16Időlimit túllépés0/1584ms564 KiB
17Elfogadva1/1144ms564 KiB
18Időlimit túllépés0/1580ms756 KiB
19Időlimit túllépés0/1580ms564 KiB
20Időlimit túllépés0/1600ms564 KiB
21Időlimit túllépés0/1584ms756 KiB
22Időlimit túllépés0/1588ms760 KiB
23Időlimit túllépés0/1574ms552 KiB
24Időlimit túllépés0/1600ms564 KiB
25Hibás válasz0/27ms316 KiB
26Hibás válasz0/2254ms316 KiB
27Időlimit túllépés0/2578ms756 KiB
28Időlimit túllépés0/1583ms564 KiB
29Időlimit túllépés0/2578ms564 KiB
30Időlimit túllépés0/1583ms564 KiB
31Elfogadva1/132ms568 KiB
32Hibás válasz0/2483ms316 KiB
33Időlimit túllépés0/2600ms564 KiB
34Időlimit túllépés0/1600ms708 KiB
35Időlimit túllépés0/2583ms564 KiB
36Időlimit túllépés0/2579ms748 KiB
37Időlimit túllépés0/2580ms564 KiB
38Időlimit túllépés0/2600ms564 KiB
39Hibás válasz0/148ms316 KiB