155182025-02-20 10:33:48MatematikaMaximális szorzat (50 pont)cpp17Hibás válasz 6/5079ms2344 KiB
#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int n,k,m,kezdes=-1,negativ=0; cin >> n >> k >> m;
    vector<int> vec(n);
    for(auto& z:vec)
    {
        cin >> z;
        if(z<0)
            negativ++;
    }
    //cerr << negativ << "\n";
    if(m>negativ)
    {
        cout << "-1";
        return 0;
    }
    sort(vec.begin(),vec.end());
    for(int i=0; i<n && vec[i]<0; i++)
        kezdes=i;
    //cerr << kezdes << "\n";
    for(int i=0; i<negativ-m; i++)
    {
        k+=vec[kezdes-i];
        vec[kezdes-i]=0;
    }
    /*for(auto z:vec)
        cerr << z << " ";*/
    if(k<0)
    {
        cout << "-1";
        return 0;
    }
    priority_queue<int, vector<int>, greater<int>> pq;
    for(auto& z:vec)
        if(z>=0)
            pq.push(z);
    while(k>0)
    {
        int x=pq.top();
        //cerr << x << "\n";
        pq.pop();
        x++;
        pq.push(x);
        k--;
    }
    int ossz=1;
    while(!pq.empty())
    {
        ossz*=pq.top();
        pq.pop();
    }
    for(auto& z:vec)
        if(z<0)
            ossz*=z;
    cout << ossz;
    return 0;
}
/*5 3 0
-1 1 1 1 1
*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms316 KiB
4Elfogadva0/01ms316 KiB
5Hibás válasz0/04ms472 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms508 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/21ms316 KiB
10Hibás válasz0/27ms604 KiB
11Hibás válasz0/272ms2336 KiB
12Hibás válasz0/179ms2344 KiB
13Hibás válasz0/11ms316 KiB
14Hibás válasz0/18ms580 KiB
15Elfogadva1/120ms564 KiB
16Hibás válasz0/141ms1072 KiB
17Elfogadva1/120ms564 KiB
18Elfogadva1/112ms1200 KiB
19Futási hiba0/141ms1200 KiB
20Futási hiba0/130ms1192 KiB
21Futási hiba0/159ms1192 KiB
22Futási hiba0/124ms1192 KiB
23Hibás válasz0/175ms1824 KiB
24Hibás válasz0/179ms2212 KiB
25Hibás válasz0/22ms316 KiB
26Hibás válasz0/26ms316 KiB
27Futási hiba0/228ms800 KiB
28Futási hiba0/128ms800 KiB
29Elfogadva2/217ms564 KiB
30Hibás válasz0/159ms1268 KiB
31Elfogadva1/141ms1076 KiB
32Hibás válasz0/22ms512 KiB
33Hibás válasz0/259ms1076 KiB
34Hibás válasz0/161ms1076 KiB
35Hibás válasz0/263ms1268 KiB
36Hibás válasz0/259ms1100 KiB
37Hibás válasz0/259ms1260 KiB
38Hibás válasz0/259ms1192 KiB
39Hibás válasz0/12ms316 KiB