結果
問題 |
No.2982 Logic Battle
|
ユーザー |
![]() |
提出日時 | 2024-12-07 00:28:53 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 722 bytes |
コンパイル時間 | 538 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 226,432 KB |
最終ジャッジ日時 | 2024-12-07 00:29:36 |
合計ジャッジ時間 | 40,247 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 36 TLE * 2 |
ソースコード
n=int(input()) dp=[[-1]*3 for _ in range(n+1)] dp[0]=[0]*3 for v in range(1,n+1)[::-1]: ndp=[[-1]*3 for _ in range(n+1)] a=list(map(int,input().split())) for i in range(n): for j in range(3): if dp[i][j]==-1: continue for k in range(3): if j==k: continue p=min(n,max(0,i+a[k]-1)) if p!=n: ndp[p][k]=max(ndp[p][k],dp[i][j]+i+a[k]) else: ndp[n][k]=max(ndp[n][k],dp[i][j]+(i+a[k]-1)*v+1) for j in range(3): if dp[n][j]==-1: continue for k in range(3): if j==k: continue ndp[n][k]=max(ndp[n][k],dp[n][j]+(a[k]-1)*v+1) dp=ndp ans=0 for i in range(n+1): ans=max(ans,max(dp[i])) print(ans)