結果
問題 | No.258 回転寿司(2) |
ユーザー |
|
提出日時 | 2022-12-16 14:32:57 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 867 bytes |
コンパイル時間 | 399 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-11-15 19:49:50 |
合計ジャッジ時間 | 6,185 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 4 |
other | WA * 67 |
ソースコード
def main(): N = int(input()) V = list(map(int, input().split())) dp_table = [[0, 0, 0, 0] for _ in range(N+1)] dp_table[0][1] -= V[0] for idx, sushi_value in enumerate(V, 1): if dp_table[idx-1][0] > dp_table[idx-1][1]: dp_table[idx][0] = dp_table[idx-1][0] dp_table[idx][2] = dp_table[idx-1][2] else: dp_table[idx][0] = dp_table[idx-1][1] dp_table[idx][2] = idx-1 dp_table[idx][1] = dp_table[idx-1][0] + sushi_value dp_table[idx][3] = dp_table[idx-1][2] sushi_ate = [] if dp_table[-1][0] > dp_table[-1][1]: sushi_ate.append(dp_table[-1][2]) else: sushi_ate.append(N) while dp_table[sushi_ate[-1]][3] > 0: sushi_ate.append(dp_table[sushi_ate[-1]][3]) print(*reversed(sushi_ate)) if __name__ == "__main__": main()