153032025-02-18 09:42:36gyarturMaximális szorzat (50 pont)cpp17Hibás válasz 6/50504ms804 KiB
#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

int x[100000];
int n, k, b;
int drbNegativ;

void Beolvas(){
    cin>>n>>k>>b;
    for(int i = 0; i < n; i++)cin>>x[i];
}

int Negativdrb(){
    int drb = 0;
    for(int i = 0; i < n; i++){
        if(x[i] < 0)drb++;
    }
    return drb;
}

int* LegnagyobbNegativ(){
    int *a = upper_bound(x, x+n, 0)-1;
    for(int *p = a; p >= x; p--){
        if(*p < 0)return p;
    }
    return x;
}

void Lepes(){
    if(drbNegativ > b){
        int *a = LegnagyobbNegativ();
        ++*a;
        if(*a == 0)drbNegativ--;
        for(int *p = a; p < x+n-1; p++){
            if(*p > *(p+1))swap(*p,*(p+1));
            else return;
        }
        return;
    }
    int *a2 = upper_bound(x, x+n, -1);
    ++*a2;
    for(int *p = a2; p < x+n-1; p++){
        if(*p > *(p+1))swap(*p,*(p+1));
        else return;
    }
}

void Kiirat(){
    if(drbNegativ != b){
        cout<<(-1);
        return;
    }
    long long int p = 1;
    for(int i = 0; i < n; i++){
        p *= x[i];
    }
    cout<<(p % (int(10e9)-7));
}

int main(){
    Beolvas();
    sort(x, x+n);
    drbNegativ = Negativdrb();
    while(k > 0){
        Lepes();
        k--;
    }
    Kiirat();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms508 KiB
4Elfogadva0/01ms316 KiB
5Hibás válasz0/014ms448 KiB
6Hibás válasz0/21ms500 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/22ms316 KiB
10Hibás válasz0/27ms520 KiB
11Hibás válasz0/268ms684 KiB
12Hibás válasz0/165ms752 KiB
13Hibás válasz0/14ms408 KiB
14Hibás válasz0/137ms448 KiB
15Elfogadva1/193ms592 KiB
16Időlimit túllépés0/1504ms564 KiB
17Elfogadva1/1122ms564 KiB
18Elfogadva1/110ms536 KiB
19Hibás válasz0/148ms564 KiB
20Hibás válasz0/137ms792 KiB
21Hibás válasz0/167ms564 KiB
22Hibás válasz0/129ms792 KiB
23Hibás válasz0/168ms768 KiB
24Hibás válasz0/167ms804 KiB
25Hibás válasz0/26ms508 KiB
26Hibás válasz0/27ms316 KiB
27Hibás válasz0/235ms564 KiB
28Hibás válasz0/135ms460 KiB
29Elfogadva2/2275ms596 KiB
30Hibás válasz0/167ms748 KiB
31Elfogadva1/143ms564 KiB
32Hibás válasz0/24ms412 KiB
33Hibás válasz0/267ms720 KiB
34Hibás válasz0/171ms720 KiB
35Hibás válasz0/268ms628 KiB
36Hibás válasz0/267ms556 KiB
37Hibás válasz0/267ms556 KiB
38Hibás válasz0/267ms788 KiB
39Hibás válasz0/14ms316 KiB