만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

가장 긴 지그재그 부분수열

시간 제한2초메모리 제한512 MB

요약
인접한 원소의 대소 관계가 증가와 감소를 번갈아 이루는 가장 긴 부분 수열의 길이를 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

정수 수열이 지그재그이려면 인접한 두 원소의 관계가 엄격한 증가와 엄격한 감소를 번갈아 나타나야 한다. 맨 앞의 관계는 증가여도 되고 감소여도 된다. 원소가 하나뿐인 수열도 지그재그다.

정수 수열이 주어질 때, 지그재그인 가장 긴 부분수열의 길이를 구한다. 부분수열은 원래 순서를 지키면서 원소를 원하는 만큼 지워서 만든다.

예를 들어 수열 1 2 3 4 2에는 길이가 3인 지그재그 부분수열이 여럿 있다. 1 3 2, 1 4 2, 2 3 2, 2 4 2, 3 4 2가 모두 지그재그다. 길이가 4 이상인 것은 없으므로 답은 3이다.

입력

첫째 줄에 수열의 길이 nn이 주어진다 (1≤n≤10000001 \le n \le 1000000). 이어지는 nn개의 줄에 수열의 원소 kk가 한 줄에 하나씩 주어진다 (1≤k≤10000001 \le k \le 1000000).

출력

가장 긴 지그재그 부분수열의 길이를 한 줄에 출력한다.

예제5

  1. 예제 1

    입력
    5
    1
    2
    3
    4
    2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    6
    1
    1
    1
    1
    1
    1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1
    1
    
    예상 출력
    1
    
  4. 예제 4

    입력
    2
    1
    1000000
    
    예상 출력
    2
    
  5. 예제 5

    입력
    7
    1
    3
    2
    4
    3
    5
    4
    
    예상 출력
    7