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

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

Починка массива

면접 대비

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

요약
배열의 원소를 맨 앞이나 맨 뒤로 옮기는 연산만 사용해 배열을 정렬할 때 필요한 최소 연산 횟수를 구한다.
난이도

보통10점 중 6점

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

문제

У Уолтера Беккета был замечательный отсортированный массив, однако, после множества экпериментов произошло непредвиденное: а именно, массив перестал быть отсортированным!

Казалось бы, что сложного в том, чтобы отсортировать массив? Но Уолтер и здесь решил провести эксперимент. Он хочет отсортировать массив используя только две операции:

  • Взять любой элемент массива и переместить его в конец массива.
  • Взять любой элемент массива и переместить его в начало массива.

Таким образом, если массив изначально содержал элементы a_1,a_2,…a_i−1,a_i,a_i+1…a_na\_1, a\_2, \dots a\_{i-1}, a\_i, a\_{i+1} \dots a\_n и был выбран ii-й элемент, то если применить первую операцию, массив станет выглядеть как a_1,a_2,…a_i−1,a_i+1…a_n,a_ia\_1, a\_2, \dots a\_{i-1}, a\_{i+1} \dots a\_n, a\_i, а в случае применения второй операции --- как a_i,a_1,a_2,…a_i−1,a_i+1…a_na\_i, a\_1, a\_2, \dots a\_{i-1}, a\_{i+1} \dots a\_n.

Оказалось, что с помощью этих двух операций всегда можно отсортировать массив, что Уолтер и сделал со своим массивом. Но теперь Уолтер дал вам новый массив и попросил найти наименьшее количество таких операций, необходимых, чтобы отсортировать новый массив.

입력

В первой строке содержится одно целое число nn --- длина массива, который вам дал Уолтер (1≤n≤300,0001 \le n \le 300\\,000).

Во второй строке заданы nn целых чисел a_ia\_i, разделенных пробелами --- элементы массива (1≤a_i≤1091 \le a\_i \le 10^9).

출력

Выведите единственное число --- минимальное число операций, которые нужно применить к данному массиву, чтобы он стал отсортированным.

힌트

В первом тесте можно переставить 22 в начало, а затем 11 в начало и массив будет отсортирован за две операции.

Во втором тесте можно оставить 55 на месте, а все остальные элементы по очереди переставить в начало. А можно оставить 11 на месте, а все остальные элементы переставить в конец. В обоих случаях придется потратить минимум четыре операции.

В третьем тесте достаточно переставить 11 в начало, а 66 в конец. Итого две операции.

예제3

  1. 예제 1

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

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

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