치즈버거 바로잡기

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

치즈버거는 대충 만들 음식이 아니다. 세상에서 가장 맛있는 음식이지만 그만큼 잘못 만들 여지도 많다. 솜씨 좋은 요리사도 재료를 쌓는 순서를 자주 틀린다.

빵 사이에 들어가는 재료의 올바른 순서는 위에서 아래로 다음 하나뿐이다.

  1. 케첩과 머스터드
  2. 비프 토마토
  3. 피클
  4. 적양파
  5. 체더치즈
  6. 마늘
  7. 소금과 후추
  8. 미디엄으로 구운 소고기 패티
  9. 콘샐러드
  10. 마요네즈

이 순서에서 조금이라도 벗어난 버거는 받아들일 수 없다. 그래서 버거를 다시 쌓아야 할 때가 있다.

접시 위의 공간과 식사 예절 탓에 버거를 손댈 방법은 많지 않다. 실제로 쓸 수 있는 연산은 비트 셔플(bit-shuffle, burger-ineptly-transformed) 하나뿐이다. 비트 셔플은 버거 전체를 연속한 재료로 이루어진 네 부분 aa, bb, cc, dd로 나눈 뒤 cc, aa, dd, bb 순서로 다시 쌓는다. 네 부분의 크기는 마음대로 정할 수 있고 크기가 0이어도 된다.

버거는 빠르게 식으므로, 받아들일 수 있는 버거를 만들기까지 필요한 비트 셔플의 최소 횟수를 구한다.

주어지는 치즈버거는 서로 다른 재료 nn개로 이루어지고 각 재료에는 11부터 nn까지 번호가 붙는다. 올바른 순서는 항상 1,2,,n1, 2, \dots, n이다.

그림 1: 첫 번째 예제 입력을 그린 것이다.

그림 2: 두 번째 예제 입력을 그린 것이다.

입력

첫째 줄에 사용한 재료의 개수 nn이 주어진다. (1n101 \le n \le 10)

둘째 줄에 주어진 치즈버거의 재료 순서가 위에서 아래로 정수 nn개로 주어진다. 재료 번호는 11부터 nn까지이고 각 번호는 정확히 한 번씩 나온다.

출력

주어진 치즈버거를 올바른 순서로 만드는 데 필요한 비트 셔플의 최소 횟수를 출력한다.