結果
問題 | No.258 回転寿司(2) |
ユーザー |
![]() |
提出日時 | 2015-10-13 01:47:35 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,002 bytes |
コンパイル時間 | 665 ms |
コンパイル使用メモリ | 69,640 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-06 18:54:20 |
合計ジャッジ時間 | 3,970 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 67 |
ソースコード
#include<iostream> #include<vector> #include<set> #include<map> #include<list> #include<stack> #include<queue> #include<bitset> #include<array> #include<algorithm> #include<cstdio> #include<string> #include<cstdlib> #define D long long #define U unsigned using namespace std; D n, m,a, b, d, e, x, y, z; D i, j, k; bool f; char c; D ma[2], keiro[2][1000],buf[1000],*p1[2]; int main() { D t,u; cin >> a; p1[0] = keiro[0]; p1[1] = keiro[1]; for (i = 0; i < a; i++) { cin >> t; u = ma[0]; copy(p1[0], p1[0] + i + 1, buf); if (ma[1]>ma[0]) { ma[0] = ma[1]; copy(p1[1], p1[1] + i+1, p1[0]); } ma[1] = u + t; copy(buf, buf + i + 1, p1[1]); p1[1][i] = 1; } cout << max(ma[0], ma[1]) << endl; if (ma[1] > ma[0]) { for (i = 0; i < a; i++) { if (p1[1][i]) { if (f) cout << ' '; cout << i + 1; f = true; } } } else { for (i = 0; i < a; i++) { if (p1[0][i]) { if (f) cout << ' '; cout << i + 1; f = true; } } } cout << endl; }