페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB
Fredrik은 방금 창턱에 새 꽃들을 놓았다. 하지만 무언가 조금 이상하게 느껴진다. 그가 원하는 만큼 대칭적이지 않다.
서로 다른 꽃 종류가 개 있으며, 각 종류는 정수 중 하나로 나타낸다. 창턱에는 왼쪽에서 오른쪽으로 한 줄로 놓인 꽃이 개 있다. 왼쪽에서 번째 꽃의 종류는 이다. Fredrik은 꽃들이 대칭이기를 원한다. 즉, 모든 에 대해 이 성립해야 한다. 이를 이루기 위해 그는 서로 인접한 두 꽃의 위치를 바꾸는 이동을 하려고 한다. 따라서 한 번의 이동으로 어떤 에 대해 꽃 과 꽃 의 위치를 바꿀 수 있다.
꽃의 대칭을 이루는 데 필요한 이동 횟수의 최솟값은 얼마인가?
여러 테스트 케이스 그룹으로 해답을 평가한다. 한 그룹에서 점수를 얻으려면 그 그룹의 모든 테스트 케이스를 통과해야 한다.
그룹 | 배점 | 제한
||
||
||
||
|| 은 짝수
|| 추가 제한 없음
입력의 첫째 줄에는 두 정수 과 ()이 주어진다. 각각 창턱에 있는 꽃의 수와 존재하는 꽃 종류의 총수를 나타낸다. 그다음 줄에는 창턱에 있는 꽃들을 나타내는 개의 정수 ()이 주어진다.
꽃들을 대칭으로 배치하는 이동 순서가 존재함이 보장된다.
꽃의 대칭을 이루기 위해 필요한 최소 이동 횟수를 정수 하나로 출력한다.
4 5
5 5 2 2
2
8 3
3 1 1 1 2 3 1 2
5
7 3
1 3 2 1 2 2 2
5
첫 번째 예제에서는 먼저 꽃 2과 3의 위치를 바꾸고, 그다음 꽃 1과 2의 위치를 바꿀 수 있다.
그러면 꽃들은 1 3 3 1 순서로 놓인다.
두 번째 예제에서는 예를 들어 다음 5번의 교환을 순서대로 수행할 수 있다.
4와 5, 3와 4, 1와 2, 2와 3, 7와 8.
그러면 꽃들은 1 2 3 1 1 3 2 1 순서로 놓인다.
Programmeringsolympiaden
로그인 상태를 확인하는 중입니다.