結果
| 問題 |
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**15
dp = [[-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]))