結果

問題 No.2889 Rusk
ユーザー flippergo
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

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]))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0