結果
| 問題 |
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))
titia