結果
問題 | No.258 回転寿司(2) |
ユーザー | ayame_py |
提出日時 | 2015-10-20 14:34:18 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 458 ms / 2,000 ms |
コード長 | 479 bytes |
コンパイル時間 | 352 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 8,576 KB |
最終ジャッジ日時 | 2024-11-06 18:56:03 |
合計ジャッジ時間 | 13,441 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 67 |
ソースコード
import sys N=input() V=map(int,raw_input().split()) dp=[0 for _ in range(N)] r=[[] for _ in range(N)] if N == 1: print V[0] print 1 sys.exit() dp[0]=V[0] r[0]=[1] if V[0] < V[1]: dp[1] = V[1] r[1] = [2] else: dp[1] = V[0] r[1] = [1] for i in range(2,N): for j in range(0,i-1): if dp[j]+V[i] > dp[i]: dp[i]=dp[j]+V[i] r[i]=list(r[j]) r[i].append(i+1) if dp[i] < dp[i-1]: dp[i]=dp[i-1] r[i]=r[i-1] print dp[N-1] print ' '.join(map(str,r[N-1])).rstrip(' ')