ამოხსნების სტატუსი

ამ გვერდზე თქვენ იხილავთ გაგზავნილი ამოხსნების სტატუსს.


გაგზავნის თარიღი: 10.09.2021 15:51:01

ამოცანა: მაქსიმალური ნამრავლი

მომხმარებელი: TsotneB

ვერდიქტი: ნაწილობრივი ამოხსნა

შეფასება: 80.0 ქულა







#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    vector <int> a;
    int neg = 0;
    for (int i=0;i<n;i++) {
        int x;
        cin>>x;
        a.push_back(x);
        if (x < 0) neg++;
    }
    sort(a.begin(),a.end());
    int ind = n-1;
    int ans = 1;
    if (n == 1 && a[0] == 0) {
        cout<<0;
        return 0;
    }
    while (ind>=0 && a[ind] > 0) {
        ans*=a[ind];
        ind--;
    }
    int numNeg = (neg/2)*2;
    for (int i=0;i<numNeg;i++) {
        ans *= a[i];
    }
    cout<<ans<<endl;
    return 0;
}

ტესტები

შემავალი მონაცემები
5
0 2 1 3 4
გამომავალი მონაცემები
24
თქვენი პასუხი
24
ჩეკერის პასუხი
YES
შემავალი მონაცემები
5
2 -4 5 -1 -1
გამომავალი მონაცემები
40
თქვენი პასუხი
40
ჩეკერის პასუხი
YES
შემავალი მონაცემები
9
1 1 1 1 1 1 1 1 -1
გამომავალი მონაცემები
1
თქვენი პასუხი
1
ჩეკერის პასუხი
YES
შემავალი მონაცემები
7
2 -2 2 -2 -3 1 5
გამომავალი მონაცემები
120
თქვენი პასუხი
120
ჩეკერის პასუხი
YES
შემავალი მონაცემები
8
13 1 -1 -1 3 -3 5 1 
გამომავალი მონაცემები
585
თქვენი პასუხი
585
ჩეკერის პასუხი
YES
შემავალი მონაცემები
11
0 0 -1 0 0 0 0 0 0 0 0
გამომავალი მონაცემები
0
თქვენი პასუხი
1
ჩეკერის პასუხი
NO
შემავალი მონაცემები
5
-2 -2 -2 -2 -2
გამომავალი მონაცემები
16
თქვენი პასუხი
16
ჩეკერის პასუხი
YES
შემავალი მონაცემები
7
7 6 5 4 3 2 1
გამომავალი მონაცემები
5040
თქვენი პასუხი
5040
ჩეკერის პასუხი
YES
შემავალი მონაცემები
1
-97
გამომავალი მონაცემები
-97
თქვენი პასუხი
1
ჩეკერის პასუხი
NO
შემავალი მონაცემები
4
0 0 99 0
გამომავალი მონაცემები
99
თქვენი პასუხი
99
ჩეკერის პასუხი
YES