結果
問題 |
No.127 門松もどき
|
ユーザー |
![]() |
提出日時 | 2025-06-25 05:16:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 948 ms / 5,000 ms |
コード長 | 725 bytes |
コンパイル時間 | 425 ms |
コンパイル使用メモリ | 82,688 KB |
実行使用メモリ | 218,180 KB |
最終ジャッジ日時 | 2025-06-25 05:16:37 |
合計ジャッジ時間 | 11,560 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 23 |
ソースコード
N=int(input()) A=list(map(int,input().split())) DP1=[[1]*N for i in range(N)] DP2=[[1]*N for i in range(N)] for kukan in range(1,N+1): for i in range(N): if i+kukan==N: break DP2[i][i+kukan]=max(DP2[i][i+kukan],DP2[i][i+kukan-1]) if A[i]<A[i+kukan]: DP2[i][i+kukan]=max(DP2[i][i+kukan],DP1[i+1][i+kukan]+1) for i in range(N-1,-1,-1): if i-kukan==-1: break DP1[i-kukan][i]=max(DP1[i-kukan][i],DP1[i-kukan+1][i]) if A[i]<A[i-kukan]: DP1[i-kukan][i]=max(DP2[i-kukan][i-1]+1,DP1[i-kukan][i]) ANS=0 for i in range(N): for j in range(N): ANS=max(ANS,DP1[i][j],DP2[i][j]) print(ANS)