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

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


გაგზავნის თარიღი: 20.04.2019 14:19:17

ამოცანა: უდიდესი დადებითი ნამრავლი

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

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

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







#include <bits/stdc++.h>
#define pb push_back
#define all(v) v.begin(),v.end()

using namespace std;

vector <int> v;
int n , k , coun , nam = 1;

int main() {
    cin >> n;
    
    for ( int i = 0; i < n; i++ ) {
        cin >> k;
        if ( k > 0 ) {
            nam *= k;
        }
        
        if ( k < 0 ) {
            coun++;
            v.pb(k);
        }
    }
    
    sort(all(v));
    
    int l = v.size() - 1;
    
    if ( coun % 2 == 0 )
        l++;
        
    for ( int i = 0; i < l; i++ ) {
        nam *= v[i];
    }
    
    cout << nam;
}

ტესტები

შემავალი მონაცემები
4
7 -2 -1 3
გამომავალი მონაცემები
42
თქვენი პასუხი
42
ჩეკერის პასუხი
YES
შემავალი მონაცემები
6
2 -4 0 0 0 1
გამომავალი მონაცემები
2
თქვენი პასუხი
2
ჩეკერის პასუხი
YES
შემავალი მონაცემები
1
7
გამომავალი მონაცემები
7
თქვენი პასუხი
7
ჩეკერის პასუხი
YES
შემავალი მონაცემები
3
-5 -5 -1
გამომავალი მონაცემები
25
თქვენი პასუხი
25
ჩეკერის პასუხი
YES
შემავალი მონაცემები
12
0 0 0 0 1 0 0 0 1 0 0 0
გამომავალი მონაცემები
1
თქვენი პასუხი
1
ჩეკერის პასუხი
YES
შემავალი მონაცემები
11
-3 0 0 10 10 10 0 0 0 -7 -2
გამომავალი მონაცემები
21000
თქვენი პასუხი
21000
ჩეკერის პასუხი
YES
შემავალი მონაცემები
2
-4 -3
გამომავალი მონაცემები
12
თქვენი პასუხი
12
ჩეკერის პასუხი
YES
შემავალი მონაცემები
6
-2 -2 -2 -2 -2 -2
გამომავალი მონაცემები
64
თქვენი პასუხი
64
ჩეკერის პასუხი
YES
შემავალი მონაცემები
16
-2 -2 0 0 0 0 2 2 2 -2 -2 0 0 0 0 2
გამომავალი მონაცემები
256
თქვენი პასუხი
256
ჩეკერის პასუხი
YES
შემავალი მონაცემები
3
-1 0 1
გამომავალი მონაცემები
1
თქვენი პასუხი
1
ჩეკერის პასუხი
YES