結果
| 問題 |
No.127 門松もどき
|
| コンテスト | |
| ユーザー |
yaoshimax
|
| 提出日時 | 2015-04-25 17:08:39 |
| 言語 | Python2 (2.7.18) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 845 bytes |
| コンパイル時間 | 111 ms |
| コンパイル使用メモリ | 6,816 KB |
| 実行使用メモリ | 164,480 KB |
| 最終ジャッジ日時 | 2024-07-05 02:27:44 |
| 合計ジャッジ時間 | 15,225 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 7 RE * 16 |
ソースコード
N=int(raw_input())
A=map(int,raw_input().split())
dpL=[[-1 for j in range(N)] for k in range(N)]
dpR=[[-1 for j in range(N)] for k in range(N)]
def recL(l,r):
global dpL
if dpL[l][r]!=-1:
return dpL[l][r]
if l>r:
return 0
if l==r:
dpL[l][r]=1
return 1
ans=recL(l,r-1)
if A[l]<A[r]:
ans=max(ans,recR(l+1,r)+1)
dpL[l][r]=ans
#print "dpL",l,r,"=",dpL[l][r]
return dpL[l][r]
def recR(l,r):
global dpR
if dpR[l][r]!=-1:
return dpR[l][r]
if l>r:
return 0
if l==r:
dpR[l][r]=1
return 1
ans=recR(l+1,r)
if A[l]>A[r]:
ans=max(ans,recL(l,r-1)+1)
dpR[l][r]=ans
#print "dpR",l,r,"=",dpR[l][r]
return dpR[l][r]
ans=0
for i in range(N):
ans=max(ans,recL(i,N-1))
ans=max(ans,recR(0,i))
print ans
yaoshimax