Bitris
시간 제한1초메모리 제한256 MB
같은 숫자가 이웃하면 사라지는 큐브 더미를 모두 없애는 데 필요한 이웃 교환 횟수의 최솟값을 구합니다.
문제
큐브 개가 한 줄로 쌓여 있다. 각 큐브에는 이상 이하의 정수가 하나씩 적혀 있고, 같은 수가 적힌 큐브는 정확히 두 개다.
같은 수가 적힌 큐브 두 개가 서로 맞닿으면 두 큐브가 함께 사라지고, 그 위에 있던 큐브가 아래로 내려와 빈자리를 메운다. 맞닿은 같은 수 쌍이 남아 있는 한 소멸은 계속 일어난다.
이웃한 큐브 두 개는 자리를 바꿀 수 있다. 소멸이 더 일어날 수 없는 상태에서만 자리를 바꿀 수 있으므로, 교환하기 전에 가능한 소멸을 모두 끝내야 한다.
큐브를 모두 없애는 데 필요한 교환의 최소 횟수를 구하라.
이고 아래에서부터 2 1 4 3 3 1 4 2 순서로 쌓인 경우를 보자. 교환은 한 번이면 된다. 이 적힌 큐브 두 개가 이미 맞닿아 있어 바로 사라지고, 더미는 2 1 4 1 4 2가 된다. 아래에서 네 번째 큐브()와 다섯 번째 큐브()를 바꾸면 가 사라지고, 이어서 과 가 차례로 사라진다. 세 번째와 네 번째를 바꾸거나 두 번째와 세 번째를 바꿔도 된다.

이고 1 3 2 1 3 2로 쌓인 경우에는 교환이 세 번 필요하다. 다섯 번째와 여섯 번째를 바꾸고 네 번째와 다섯 번째를 바꾸면 가 적힌 큐브가 사라져 더미는 1 3 1 3이 된다. 두 번째와 세 번째를 바꾸면 남은 큐브가 모두 사라진다.

입력
첫째 줄에 정수 이 주어진다. ()
둘째 줄에 큐브에 적힌 수 개가 더미의 아래에서 위 순서로 공백을 사이에 두고 주어진다. 부터 까지의 각 정수는 정확히 두 번씩 나온다.
출력
큐브를 모두 없애는 데 필요한 교환의 최소 횟수 을 한 줄에 출력한다. 은 음이 아닌 정수다.