結果
| 問題 |
No.45 回転寿司
|
| ユーザー |
data9824
|
| 提出日時 | 2015-06-08 22:05:19 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 847 bytes |
| コンパイル時間 | 589 ms |
| コンパイル使用メモリ | 63,092 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-24 07:23:51 |
| 合計ジャッジ時間 | 1,640 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 1 WA * 29 |
ソースコード
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
size_t n;
cin >> n;
vector<int> v(n);
for (size_t i = 0; i < n; ++i) {
cin >> v[i];
}
int result = 0;
while (!v.empty()) {
vector<int> gain(v.size());
for (size_t i = 0; i < v.size(); ++i) {
gain[i] = v[i]
- ((i > 0) ? v[i - 1] : 0)
- ((i < v.size() - 1) ? v[i + 1] : 0);
}
size_t maxIndex = distance(gain.begin(), max_element(gain.begin(), gain.end()));
result += v[maxIndex];
if (maxIndex < gain.size() - 1) {
gain.erase(gain.begin() + maxIndex + 1);
v.erase(v.begin() + maxIndex + 1);
}
gain.erase(gain.begin() + maxIndex);
v.erase(v.begin() + maxIndex);
if (maxIndex > 0) {
gain.erase(gain.begin() + maxIndex - 1);
v.erase(v.begin() + maxIndex - 1);
}
}
cout << result << endl;
return 0;
}
data9824