ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
long long ans = 0;
vector<long long> b, c;
for (int i = 0; i < n; i++) {
long long e;
cin >> e;
ans += e;
if (e % 3 == 1) b.emplace_back(e);
if (e % 3 == 2) c.emplace_back(e);
}
sort(b.begin(), b.end());
sort(c.begin(), c.end());
if (ans % 3 == 1) {
if (b.size() > 0 and c.size() > 1) {
ans = max(ans - b[0], ans - c[0] - c[1]);
} else if (b.size()) {
ans -= b[0];
} else if (c.size() > 1) {
ans -= (c[0] + c[1]);
} else {
ans = -1;
}
} else if (ans % 3 == 2) {
if (b.size() > 1 and c.size() > 0) {
ans = max(ans - b[0] - b[1], ans - c[0]);
} else if (c.size()) {
ans -= c[0];
} else if (b.size() > 1) {
ans -= (b[0] + b[1]);
} else {
ans = -1;
}
}
if (ans == 0) ans = -1;
cout << ans << endl;
return 0;
}