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

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

띠 정렬하기

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

요약
순열을 여러 조각으로 잘라 순서를 바꾸고 각 조각을 뒤집을 수 있을 때, 오름차순으로 만들기 위한 최소 가위질 횟수를 구한다.
난이도

보통10점 중 5점

유형
정렬, 그리디, 배열
정답자
아직 제출이 없습니다

문제

숫자가 적힌 종이로 된 띠가 있다. 띠에는 N개의 서로 다른 수가 적혀 있다.

이때, 이 띠에 적힌 수 사이에 가위질을 하여 하나의 띠를 여러개의 띠로 분리할 수 있으며, 여러개의 띠가 있을 때 각 띠간의 순서를 자유롭게 바꿀 수 있다.

또한, 각 띠에 대해 띠에 적힌 수를 모두 지우고 원래 적혀있던 수의 역순으로 수를 적을 수 있다.

띠에 적힌 수가 주어질 때, 띠에 적힌 수를 왼쪽부터 오름차순으로 정렬된 상태로 표시하기 위해 필요한 최소한의 가위질 횟수를 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에 띠에 적힌 수의 개수 N이 주어진다.

두 번째 줄에 왼쪽부터 순서대로 띠에 적힌 수 a1, a2, … aN이 주어진다.

출력

띠에 적힌 수들을 왼쪽부터 오름차순으로 표시하기 위해 필요한 가위질 횟수의 최솟값을 출력한다.

제한

  • 2 ≤ N ≤ 200,000
  • 1 ≤ ai ≤ 109
  • 띠에 적혀있는 수들은 모두 다른 수이다.

예제2

  1. 예제 1

    입력
    7
    94 14 9 54 4 8 60
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5
    44 39 14 7 2
    
    예상 출력
    0