結果

問題 No.209 Longest Mountain Subsequence
ユーザー chocoruskchocorusk
提出日時 2020-09-18 13:55:25
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 912 ms / 2,000 ms
コード長 836 bytes
コンパイル時間 334 ms
コンパイル使用メモリ 10,976 KB
実行使用メモリ 8,404 KB
最終ジャッジ日時 2023-09-04 08:49:34
合計ジャッジ時間 4,024 ms
ジャッジサーバーID
(参考情報)
judge12 / judge15
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 369 ms
8,404 KB
testcase_01 AC 324 ms
8,344 KB
testcase_02 AC 313 ms
8,312 KB
testcase_03 AC 912 ms
8,352 KB
testcase_04 AC 909 ms
8,168 KB
testcase_05 AC 83 ms
8,312 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
read=sys.stdin.buffer.read
readline=sys.stdin.buffer.readline
readlines=sys.stdin.buffer.readlines
import itertools
t=int(readline())
def myon(a):
    INF=10**9+7
    n=len(a)
    dp=[0]*n
    res=[1]*n
    for c in range(2, n+1):
        newdp=[INF]*n
        for i, ai in enumerate(a):
            mn=min([ai-aj for aj, dpj in zip(a[:i], dp[:i]) if dpj<ai-aj], default=INF)
            if newdp[i]>mn:
                newdp[i]=mn
        dp=newdp
        end=True
        for i in range(n):
            if dp[i]<INF:
                res[i]=c
                end=False
        if end:
            break
    return res
def solve():
    n=int(readline())
    a=list(map(int, readline().split()))
    x=myon(a)
    a=a[::-1]
    y=myon(a)
    y=y[::-1]
    print(max(p+q-1 for p, q in zip(x, y)))
for _ in range(t):
    solve()
0