解析:思维题。由于需要互不相同,每次操作取重复的值与最大值相加即可,这样即可保证相加后不会新增重复的值。因此统计重复值即可。
#include <iostream>
#include <algorithm>using namespace std;
const int maxn = 1e5 + 5;
int mp[maxn];
signed main(){std::ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int n;cin >> n;int res = 0;for(int i = 1;i <= n;i ++){int x;cin >> x;mp[x] ++;}for (int i = 1; i <= n; ++i) {if (mp[i] > 1){res += mp[i] - 1;}}cout << res;}