結果

提出番号 631
提出者 neg4jaYR
言語 C++
提出日時 2017-07-27 18:32:44
問題名 (18)おまんじゅうわけわけ
結果 WA
点数 0%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 1ms 7968KB
2 AC 100% 1ms 7680KB
3 AC 100% 1ms 7760KB
4 AC 100% 11ms 7408KB
5 AC 100% 13ms 8336KB
6 AC 100% 15ms 8320KB
7 AC 100% 15ms 7792KB
8 WA 0% 17ms 8336KB
9 AC 100% 18ms 8320KB

ソースコード

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int N, A, ans = 0;
vector<int> p[3];
int main () {
    int ans = 0;
    scanf("%d", &N);
    for (int i = 0; i < N; i++) {
        scanf("%d", &A);
        if (A % 3 == 0) {
            ans += A;
        }
        else {
            p[A%3].push_back(-A);
        }
    }
    sort(p[1].begin(), p[1].end());
    sort(p[2].begin(), p[2].end());
    int k = min(p[1].size(), p[2].size());
    for (int i = 0, len = k; i < len; i++) {
        ans -= p[1][i]+p[2][i];
    }
    for (int i = k, len = p[1].size()-2; i < len; i+=3) {
        ans -= p[1][i]+p[1][i+1]+p[1][i+2];
    }
    for (int i = k, len = p[2].size()-2; i < len; i+=3) {
        ans -= p[2][i]+p[2][i+1]+p[2][i+2];
    }
    if (ans == 0) {
        puts("-1");
    }
    else {
        printf("%d\n", ans);
    }
}