페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
1000
ms
메모리 제한
1024
MB
애드난은 바쿠에서 가장 큰 신발 가게를 운영한다. 같은 크기의 왼쪽 신발과 오른쪽 신발로 이루어진 켤레, 즉 개의 신발이 도착했다. 애드난은 신발을 왼쪽부터 번에서 번까지의 위치에 한 줄로 놓았다.
다음 조건을 모든 ()에 대해 만족하는 배열을 올바른 배열이라고 한다.
애드난은 현재 서로 인접한 두 신발을 골라 맞바꾸는 작업을 여러 번 할 수 있다. 두 위치의 차이가 이면 두 신발은 인접한다.
신발을 올바르게 배열하는 데 필요한 인접 교환의 최소 횟수를 구하여라.
다음 함수를 구현해야 한다.
long long count_swaps(vector<int> S)
다음 호출을 생각해 보자.
count_swaps([2, 1, -1, -2])
신발 과 , 과 , 과 , 와 를 차례로 교환하면 을 얻는다. 네 번보다 적은 교환으로는 올바른 배열을 만들 수 없으므로 반환 값은 이다.

count_swaps([-2, 2, 2, -2, -2, 2])
위치 와 의 신발을 한 번 교환하면 가 되므로 반환 값은 이다.
count_swaps의 반환 값을 한 줄에 출력한다.2
2 1 -1 -2
4
3
-2 2 2 -2 -2 2
1
International Olympiad in Informatics (IOI) 2019, official task package and official Korean statement.
Reporch에서 한국어 번역, 수식 표기, 이미지 호스팅 및 형식을 수정했습니다.
로그인 상태를 확인하는 중입니다.