题解:
#include<bits/stdc++.h>
using namespace std;
map<int, vector<int>> p;
set<int> q;//去重记录数字
int main()
{
int n; cin >> n;
for(int i = 0; i < n; i++)
{
int x;cin >> x;
p[x].push_back(x);
q.insert(x);
}
int t = 0;//求和
for(auto j: q)
{
if(p[j].size() != j)
{
int z = p[j].size();
while(1)
{
z--;
t++;
if(z == j)break;
else if(z == 0)break;
//一个数字和本身出现的次数不相等,要么减少这个数字到相等,要么直接减少到0
}
}
}
cout << t;
return 0;
}