結果
問題 | No.2889 Rusk |
ユーザー |
|
提出日時 | 2025-01-31 09:30:51 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 728 bytes |
コンパイル時間 | 607 ms |
コンパイル使用メモリ | 82,536 KB |
実行使用メモリ | 138,612 KB |
最終ジャッジ日時 | 2025-01-31 09:31:07 |
合計ジャッジ時間 | 14,403 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 WA * 1 |
ソースコード
N = int(input())A = [0]+list(map(int,input().split()))B = [0]+list(map(int,input().split()))C = [0]+list(map(int,input().split()))INFTY = 10**15dp = [[-INFTY for _ in range(9)] for _ in range(N+1)]G = {0:[0,1,3],1:[1,2,4],2:[2,5],3:[3,4,6],4:[4,5,7],5:[5,8],6:[6,7],7:[7,8],8:[8]}T = {0:0,1:1,2:0,3:1,4:2,5:1,6:0,7:1,8:0}dp[1][0] = A[1]dp[1][1] = B[1]dp[1][3] = B[1]dp[1][4] = C[1]for i in range(1,N):for j in range(9):for k in G[j]:if T[k]==0:dp[i+1][k] = max(dp[i+1][k],dp[i][j]+A[i+1])elif T[k]==1:dp[i+1][k] = max(dp[i+1][k],dp[i][j]+B[i+1])else:dp[i+1][k] = max(dp[i+1][k],dp[i][j]+C[i+1])print(max(dp[N]))