結果

問題 No.209 Longest Mountain Subsequence
ユーザー convexineqconvexineq
提出日時 2020-12-18 20:15:08
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
TLE  
実行時間 -
コード長 645 bytes
コンパイル時間 158 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 16,640 KB
最終ジャッジ日時 2024-09-21 09:16:37
合計ジャッジ時間 12,572 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

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

ソースコード

diff #

def get(a):
    n = len(a)
    dp = [[0]*n for _ in range(n)]
    for i in range(n):
        dp[i][i] = 1
        for j in range(i,n):
            for k in range(j+1,n):
                if a[j] < a[k] and a[j] - a[i] < a[k] - a[j]:
                    dp[j][k] = max(dp[j][k], dp[i][j] + 1)
    res = [0]*n    
    for i in range(n):
        for j in range(i,n):
            res[j] = max(res[j],dp[i][j])
    return res

def solve(a):
    r1 = get(a)
    r2 = get(a[::-1])[::-1]
    x = max(i+j for i,j in zip(r1,r2))
    return x-1

T = int(input())
for _ in range(T):
    n = int(input())
    *a, = map(int,input().split())
    print(solve(a))
0