어린 존은 바이트 백과사전 읽기를 좋아하고, 특히 그 안에 담긴 알록달록한 삽화에 푹 빠져 있다. 이 백과사전은 서로 독립적인 여러 페이지로 이루어져 있다. 이따금 새로운 페이지가 인쇄되면, 존의 부모님은 그것을 지금까지의 모든 페이지가 들어 있는 바인더에 끼워 넣는다. 페이지가 더러워지지 않도록, 각 페이지는 저마다 투명한 커버 안에 넣어 둔다.
어느 날 존이 바인더를 바닥에 떨어뜨리는 바람에, 모든 커버가 바인더에서 빠지고 모든 페이지가 커버에서 빠져나왔다. 다행히 잃어버린 것은 하나도 없어서, 흩어진 페이지의 수는 여전히 커버의 수와 같다. 존은 바닥에 있는 것들을 모두 주워 하나의 더미로 쌓았다. 이제 그는 모든 것을 다시 바인더에 넣으려고 하는데, 그러려면 먼저 더미에서 페이지와 커버가 번갈아 나오도록 순서를 바꿔야 한다. 존은 글을 읽지 못하므로 페이지들 사이의 순서는 중요하지 않다. 오직 페이지와 커버가 번갈아 놓이기만 하면 된다.
한 번의 이동에서 존은 더미에서 서로 이웃한 두 원소의 위치를 맞바꿀 수 있다. 페이지와 커버가 번갈아 놓이는 순간 작업을 멈춘다. 이러한 배치에 이르기까지 필요한 이웃 원소 교환의 최소 횟수를 구하여라.
다음을 수행하는 프로그램을 작성하여라.
첫째 줄에 정수 n (1≤n≤106)이 주어진다. 이는 페이지의 개수이며, 동시에 커버의 개수이기도 하다.
그 다음에는 더미를 나타내는 2n개의 음이 아닌 정수가 주어진다. 이 중 i번째 정수는 더미의 위에서부터 i번째 원소를 나타낸다. 그 원소가 커버이면 값은 0이고, 그렇지 않으면 109 이하의 양의 페이지 번호이다.
주어지는 정수 중 0의 개수와 양수의 개수는 정확히 같다(각각 n개). 페이지 번호는 서로 다를 필요가 없으며, 같은 번호가 여러 번 나타날 수 있다.
페이지와 커버가 번갈아 놓이도록 더미를 재배열하는 데 필요한 이웃 교환의 최소 횟수를 정수 하나로 출력한다.