解析:思维题。由于需要互不相同,每次操作取重复的值与最大值相加即可,这样即可保证相加后不会新增重复的值。因此统计重复值即可。
#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;
}