結果
問題 |
No.91 赤、緑、青の石
|
ユーザー |
![]() |
提出日時 | 2017-06-06 19:06:15 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,104 bytes |
コンパイル時間 | 794 ms |
コンパイル使用メモリ | 90,300 KB |
実行使用メモリ | 16,960 KB |
最終ジャッジ日時 | 2024-09-22 11:51:46 |
合計ジャッジ時間 | 13,486 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 4 |
other | TLE * 1 -- * 27 |
ソースコード
#include <iostream> #include <iomanip> #include <algorithm> #include <vector> #include <string> #include <queue> #include <stack> #include <functional> #include <complex> #include <cmath> #include <ccomplex> using namespace std; int sum(vector<int> v) { int sum = 0; for (int i = 0; i < 3; i++) { sum += v[i]; } return sum; } bool check(vector<int> v) { bool ok = true; for (int i = 0; i < 3; i++) { if (v[i] < 0)ok = false; } return ok; } int main() { vector<int> color(3); for (int i = 0; i < 3; i++)cin >> color[i]; int mn = *min_element(color.begin(), color.end()); for (int i = 0; i < 3; i++)color[i] -= mn; int cnt = mn; sort(color.begin(), color.end()); bool ok = true; while (ok) { if (sum(color) <= 2) { ok = false; break; } color[2] -= 2; color[0] += 1; ok = check(color); int mn = *min_element(color.begin(), color.end()); if (mn >= 1) { cnt += mn; for (int i = 0; i < 3; i++)color[i] -= mn; } sort(color.begin(), color.end()); cerr << color[0] << " " << color[1] << " " << color[2] << " " << cnt << endl; } cout << cnt << endl; }