Codeforces Round #743 (Div. 2) B. Swaps
Solution
b[i].second
는 b[i].first 의 인덱스
혹은 b[j]의 인덱스 단, j < i and b[j] > b[i]
값이다. 따라서 vector<pair<int, int>> b
에는 각 숫자를 선택 했을 때 최소한으로 움직일 수 있는 값들로 갱신되어 있다.
이제 map<int, int> a (value, index)
를 순회하며 각 a의 인덱스
와 b의 최소 움직일 수 있는 횟수
를 더하면 된다.
c++
1 |
|