wizardrabbit   1년 전

* 본 지문은 16086번 문제를 번역 및 재구성하여 작성했습니다.

문제


$N$ 개의 수로 이루어진 배열 $A = [a_1, a_2, a_3, ..., a_N]$ 와 $B = [1, 2, 3, ..., N]$ 가 있다. $A$ 에는 $1$ 부터 $N$ 까지의 양의 정수가 각각 하나씩 들어 있다.

당신은 아래의 연산을 $0$ 회 이상 사용할 수 있다.

  • $B$ 의 마지막 원소를 배열의 왼쪽 끝으로 옮긴다. 즉, $B = [b_1, b_2, b_3, ..., b_{N-1}, b_N]$ 을 $B = [b_N, b_1, b_2, ..., b_{N-2}, b_{N-1}]$ 로 바꾼다.

모든 $i$ 에 대해 $a_i \ne b_i$ 가 만족하도록 하기 위해 사용해야 하는 연산의 최소 횟수를 구하는 프로그램을 작성하시오.

입력


첫 번째 줄에 $N$ 이 주어진다.

두 번째 줄에 $a_1, a_2, a_3, ..., a_N$ 이 공백 한 칸을 사이에 두고 주어진다.

출력


첫 번째 줄에 사용해야 하는 연산의 최소 횟수를 출력한다. 만약 연산을 몇 번 사용하더라도 조건을 만족하도록 할 수 없는 경우, -1을 출력한다.

제한


  • $1 \le N \le 200\;000$
  • $1 \le i \le N$
  • $N, i$ 는 양의 정수

댓글을 작성하려면 로그인해야 합니다.