結果

問題 No.258 回転寿司(2)
ユーザー ayame_pyayame_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
権限があれば一括ダウンロードができます

ソースコード

diff #

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(' ')
0