結果

提出番号 1400
提出者 square1001
言語 C++
提出日時 2018-08-02 20:49:45
問題名 (18)おまんじゅうわけわけ
結果 AC
点数 100%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 2ms 8368KB
2 AC 100% 2ms 8128KB
3 AC 100% 1ms 8704KB
4 AC 100% 26ms 8432KB
5 AC 100% 22ms 8320KB
6 AC 100% 26ms 8432KB
7 AC 100% 27ms 8672KB
8 AC 100% 26ms 8176KB
9 AC 100% 27ms 8144KB

ソースコード

#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
	int n, x, s = 0;
	cin >> n;
	vector<int> va, vb;
	for (int i = 0; i < n; ++i) {
		cin >> x;
		s += x;
		if (x % 3 == 1) va.push_back(x);
		if (x % 3 == 2) vb.push_back(x);
	}
	sort(va.begin(), va.end());
	sort(vb.begin(), vb.end());
	if (s % 3 == 0) {
		cout << s << '\n';
	}
	else if (s % 3 == 1) {
		int cur = 0;
		if (va.size() >= 1) cur = s - va[0];
		if (vb.size() >= 2) cur = max(cur, s - vb[0] - vb[1]);
		cout << (cur == 0 ? -1 : cur) << '\n';
	}
	else {
		int cur = 0;
		if (va.size() >= 2) cur = s - va[0] - va[1];
		if (vb.size() >= 1) cur = max(cur, s - vb[0]);
		cout << (cur == 0 ? -1 : cur) << '\n';
	}
	return 0;
}