题解:免费的操作是分别在奇偶下标进行排序,收费的操作会改变他们下标的奇偶性,那么直接统计在排序后有多少元素的下标发生变化了即可。
#include <iostream>
#include <vector>
#include <algorithm>
#include "map"
using namespace std;
#define int long long
map<int,int> mp;
signed main() {std::ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int n;cin >> n;vector<int> arr(n);for (int i = 0; i < n; i++) {cin >> arr[i];mp[arr[i]] = (i & 1);}sort(arr.begin(),arr.end());int res = 0;for (int i = 0; i < n; ++i) {res += (i & 1) ^ (mp[arr[i]]);}cout << res / 2;}