結果

問題 No.209 Longest Mountain Subsequence
ユーザー yaoshimaxyaoshimax
提出日時 2015-05-24 18:41:06
言語 PyPy2
(7.3.15)
結果
MLE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,052 bytes
コンパイル時間 156 ms
コンパイル使用メモリ 76,968 KB
実行使用メモリ 80,424 KB
最終ジャッジ日時 2024-07-06 06:48:59
合計ジャッジ時間 4,358 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 MLE -
testcase_01 MLE -
testcase_02 MLE -
testcase_03 MLE -
testcase_04 MLE -
testcase_05 MLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

T=int(raw_input())

for ti in range(T):
    N=int(raw_input())
    A=map(int,raw_input().split())
    dpLeft=[[1000000001 for i in range(N+1)] for j in range(N)]
    dpRight=[[1000000001 for i in range(N+1)] for j in range(N)]
    for i,a in enumerate(A):
        dpLeft[i][0]=0
        for j in range(1,i+1):
            # fill dpLeft[i][j]
            for k in range(i):
                if A[k]<A[i] and A[i]-A[k] > dpLeft[k][j-1]:
                    dpLeft[i][j]=min(dpLeft[i][j],A[i]-A[k])
    A.reverse()
    for i,a in enumerate(A):
        dpRight[i][0]=0
        for j in range(1,i+1):
            # fill dpRight[i][j]
            for k in range(i):
                if A[k]<A[i] and A[i]-A[k] > dpRight[k][j-1]:
                    dpRight[i][j]=min(dpRight[i][j],A[i]-A[k])
    ans=0
    for i in range(N):
        left=0
        while left<N and dpLeft[i][left]!=1000000001:
            left+=1
        right=0
        while right<N and dpRight[N-1-i][right]!=1000000001:
            right+=1
        ans=max(ans,left+right-1)
    print ans
0