結果
問題 |
No.258 回転寿司(2)
|
ユーザー |
|
提出日時 | 2015-07-31 21:41:45 |
言語 | Python2 (2.7.18) |
結果 |
WA
|
実行時間 | - |
コード長 | 576 bytes |
コンパイル時間 | 48 ms |
コンパイル使用メモリ | 6,912 KB |
実行使用メモリ | 6,400 KB |
最終ジャッジ日時 | 2024-11-24 08:54:58 |
合計ジャッジ時間 | 4,150 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 3 |
other | WA * 67 |
ソースコード
N = int(raw_input()) data = map(int, raw_input().split()) if N == 1: print data[0] print 1 exit() dp = [0] * N dp[0] = data[0] dp[1] = max(dp[0], data[1]) for i in xrange(2, N): dp[i] = max(dp[i - 2] + data[i], dp[i - 1]) print dp[-1]+1 choice = [] for k in xrange(N - 1, 1, -1): if dp[k] - dp[k - 1] == 0: pass elif dp[k] - dp[k - 2] == data[k]: choice.append(k + 1) dp[k - 1] = 0 if dp[1] == data[1]: choice.append(2) elif dp[0] == data[0]: choice.append(1) choice.reverse() print " ".join(map(str, choice))