結果
問題 | No.1368 サイクルの中に眠る門松列 |
ユーザー | titia |
提出日時 | 2021-01-29 21:42:46 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 987 ms / 2,000 ms |
コード長 | 592 bytes |
コンパイル時間 | 96 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 31,092 KB |
最終ジャッジ日時 | 2024-06-27 07:55:00 |
合計ジャッジ時間 | 10,175 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 15 |
ソースコード
def solve(A): DP=[0]*(N+3) for i in range(N-2): DP[i]=max(DP[i-1],DP[i]) if A[i]>A[i+1] and A[i+1]<A[i+2] and A[i]!=A[i+2]: DP[i+3]=max(DP[i+3],DP[i]+A[i]) if A[i]<A[i+1] and A[i+1]>A[i+2] and A[i]!=A[i+2]: DP[i+3]=max(DP[i+3],DP[i]+A[i]) return max(DP) T=int(input()) for tests in range(T): N=int(input()) A=list(map(int,input().split())) M1=solve(A) A=A[1:]+[A[0]] M2=solve(A) A=A[1:]+[A[0]] M3=solve(A) A=A[1:]+[A[0]] M4=solve(A) print(max(M1,M2,M3,M4))