Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector <int> t[2];
  4. int mod(int x){
  5.     return ((x%3)+3)%3;
  6. }
  7. int sgn(int x){
  8.     if(x>0) return 1;
  9.     else return -1;
  10. }
  11. int main(){
  12.     long long s = 0;
  13.     int n, x; cin >> n;
  14.     for(int i = 0 ; i < n ; i++){
  15.         cin >> x;
  16.         if(x == 0) continue;
  17.         else if(mod(x) == 1) t[(1-sgn(x))/2].push_back(abs(x));
  18.         else if(mod(x) == 2) t[(1+sgn(x))/2].push_back(abs(x));
  19.         if(x > 0) s+=x;
  20.     }
  21.     for(int i = 0 ; i < 2 ; i++){
  22.         t[0].push_back(10000000);
  23.         t[1].push_back(10000000);
  24.     }
  25.     sort(t[0].begin(), t[0].end());
  26.     sort(t[1].begin(), t[1].end());
  27.     if(s%3 == 2) s-=min((t[1][0] + t[1][1]), t[0][0]);
  28.     else if(s%3 == 0) s-=min((t[0][0] + t[0][1]), t[1][0]);
  29.     cout << s;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement