아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

개선

시간 제한1초메모리 제한256 MB

요약
역과 같은 직선 위에 놓인 n척의 함선을 번호가 연속한 함선끼리 잇는 밧줄이 서로 엇갈리지 않도록 옮길 때 제자리에 남는 함선 수를 최대로 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 조합론, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

손 할로에게는 1번부터 nn번까지 번호가 붙은 우주선 nn대와 우주 정거장 하나가 있다. 정거장과 우주선은 모두 한 직선 위에 있다. 우주선 ii는 정거장에서 xix_i미터 떨어져 있고, 모든 xix_i가 양수이므로 우주선은 모두 정거장의 같은 쪽에 있다. xix_i는 서로 다르다. 정거장의 번호는 0이고 x0=0x_0 = 0이다.

번호가 연속한 두 우주선은 밧줄로 이어져 있고, 첫 번째 우주선은 정거장과 이어져 있다. 밧줄 ii(1≤i≤n1 \le i \le n)는 우주선 ii와 우주선 i−1i-1을 잇는다. 즉 밧줄 1은 첫 번째 우주선과 정거장을 잇는다.

xkmin⁡=min⁡(xk−1,xk)x_k^{\min} = \min(x_{k-1}, x_k), xkmax⁡=max⁡(xk−1,xk)x_k^{\max} = \max(x_{k-1}, x_k)로 쓴다. 손 할로는 구간 [ximin⁡,ximax⁡][x_i^{\min}, x_i^{\max}]과 [xjmin⁡,xjmax⁡][x_j^{\min}, x_j^{\max}]이 내부의 점을 공유하고 어느 쪽도 다른 쪽을 완전히 포함하지 않을 때 밧줄 ii와 밧줄 jj가 교차한다고 본다. 다음 중 하나가 성립하는 경우다.

{ximin⁡<xjmin⁡<ximax⁡<xjmax⁡xjmin⁡<ximin⁡<xjmax⁡<ximax⁡\begin{cases} x_i^{\min} < x_j^{\min} < x_i^{\max} < x_j^{\max} \\ x_j^{\min} < x_i^{\min} < x_j^{\max} < x_i^{\max} \end{cases}

손 할로는 교차하는 밧줄이 없도록 우주선을 다시 배치하려 한다. 게으른 성격이라 원래 위치 xix_i에 그대로 남는 우주선의 수를 최대로 하고 싶다. 다시 배치한 뒤에도 우주선은 모두 정거장의 같은 쪽에 있어야 하고 위치가 서로 달라야 한다. 우주선은 임의의 실수 위치에 놓을 수 있다.

원래 위치에 남을 수 있는 우주선의 최대 개수를 구하라.

입력

첫째 줄에 우주선의 수 nn(1≤n≤200 0001 \le n \le 200\,000)이 주어진다. 둘째 줄에 우주선의 초기 위치를 나타내는 서로 다른 정수 xix_i(1≤xi≤n1 \le x_i \le n) nn개가 주어진다.

출력

원래 위치에 남을 수 있는 우주선의 최대 개수를 정수 하나로 출력한다.

힌트

첫 번째 예제에서 손 할로는 두 번째 우주선을 첫 번째 우주선과 세 번째 우주선 사이로 옮기면 되고, 나머지 세 대는 자리를 지킨다. 두 번째 예제에서는 교차하는 밧줄이 없으므로 네 대 모두 원래 자리에 남을 수 있다.

예제2

  1. 예제 1

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

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