목차

Up and Down

ps
링크acmicpc.net/…
출처BOJ
문제 번호32683
문제명Up and Down
레벨골드 1
분류

가장 긴 증가하는 부분 수열

시간복잡도O(t * nlogn)
인풋사이즈t<=5*10^4, n<=2*10^5, t*n<=5*10^5
사용한 언어Python 3.13
제출기록58520KB / 240ms
최고기록240ms
해결날짜2026/01/11

풀이

코드

"""Solution code for "BOJ 32683. Up and Down".

- Problem link: https://www.acmicpc.net/problem/32683
- Solution link: http://www.teferi.net/ps/problems/boj/32683

Tags: [lis]
"""

import sys
from teflib import psutils
from teflib import seqtask


@psutils.run_n_times
def main():
    _N = int(sys.stdin.readline())
    a = [int(x) for x in sys.stdin.readline().split()]

    lis_lengths = seqtask.longest_inc_subseq_length_by_last_elem(a)
    lds_lengths = seqtask.longest_dec_subseq_length_by_first_elem(a)
    answer = 0
    for lis_len, lds_len in zip(lis_lengths, lds_lengths):
        if lis_len > 1 and lds_len > 1:
            answer = max(answer, lis_len + lds_len - 1)

    print(answer)


if __name__ == '__main__':
    main()