結果
問題 | No.258 回転寿司(2) |
ユーザー |
![]() |
提出日時 | 2015-07-31 22:42:16 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 954 bytes |
コンパイル時間 | 589 ms |
コンパイル使用メモリ | 65,732 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-06 18:45:02 |
合計ジャッジ時間 | 3,916 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 67 |
ソースコード
#include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std; int main(){ int n; cin >> n; int v1 = 0; vector<int> v1_seq; int v0 = 0; vector<int> v0_seq; for(int i = 0; i < n; i++){ int v; cin >> v; int v1_new = 0; int v0_new = 0; vector<int> prev_v0_seq = v0_seq; if(v1 > v0){ v0_seq = v1_seq; v0_new = v1; }else{ v0_new = v0; } if(v1 < v0 + v){ v1_new = v0 + v; v1_seq = prev_v0_seq; v1_seq.push_back(i+1); }else{ v1_new = v1; } v1 = v1_new; v0 = v0_new; } if(v0 > v1) v1_seq = v0_seq; cout << max(v0, v1) << endl; for(int i = 0; i < v1_seq.size(); i++){ cout << v1_seq[i]; if(i+1 < v1_seq.size()) cout << " "; else cout << endl; } return 0; }