꼬치

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

요약
꼬치의 앞 재료는 그릇 A에, 뒤 재료는 그릇 B에 빼고 각 그릇에서 하나씩 골라 다시 앞과 뒤에 꽂는 행동을 반복할 때, 맛을 오름차순으로 정렬하는 최소 횟수를 구한다.
난이도

보통10점 중 7점

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

문제

꼬치에 꼬치 재료 NN개가 일렬로 꽂혀 있다. 앞에서부터 ii번째에 위치한 꼬치 재료의 맛은 T_iT\_i이며, 꼬치 재료의 맛은 11 이상 NN 이하의 서로 다른 정수이다.

당신은 비어 있는 두 그릇 AA와 BB를 사용하여 꼬치 재료를 맛의 오름차순으로 정렬하기로 했다.

  • 꼬치의 맨 앞에 꽂혀 있는 재료를 뺀 뒤, 그 재료를 그릇 AA에 놓는다.
  • 꼬치의 맨 뒤에 꽂혀 있는 재료를 뺀 뒤, 그 재료를 그릇 BB에 놓는다.
  • 그릇 AA에 놓인 재료 중 하나를 골라 꼬치의 맨 앞에 꽂는다.
  • 그릇 BB에 놓인 재료 중 하나를 골라 꼬치의 맨 뒤에 꽂는다.

그릇에 놓인 재료가 하나라도 있다면 오름차순으로 정렬된 것이 아니다.

꼬치 재료의 맛을 오름차순으로 정렬하려면, 위 행동을 최소 몇 번 수행해야 하는지 알아내라.

입력

첫째 줄에 꼬치 재료의 개수 NN이 주어진다. (1≤N≤200,0001 \leq N \leq 200\\,000)

둘째 줄에 꼬치 재료의 맛 T_1,T_2,…,T_NT\_1, T\_2, \ldots, T\_N이 공백으로 구분되어 주어진다. T_iT\_i는 서로 다르다. (1≤T_i≤N1 \leq T\_i \leq N)

출력

첫째 줄에 꼬치 재료를 맛의 오름차순으로 정렬하기 위해 필요한 행동의 최소 횟수를 출력한다.

예제2

  1. 예제 1

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

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