求大佬纠错
3372查看
#include<bits/stdc++.h>
using namespace std;
const long long N = 1e5;
int main() {
int n; cin >> n;//数字序列个数
int a[N] = { 0 };//各数字的个数
vector<int>b;//有哪些数字
int num;
for (int i = 0; i < n; i++) {
cin >> num;
b.push_back(num);
a[num]+=1;
}
/* for (int i = 0; i < 20; i++) {
if (a[i] != 0) {
printf("a[%d]=%d\n", i, a[i]);
}
}*/
sort(b.begin(), b.end());
auto it = unique(b.begin(), b.end());
b.erase(it, b.end());
/* for (int i = 0; i < b.size(); i++) {
cout << b[i] << ' ';
}*/
int delete_num = 0;
for (int i = 0; i < b.size(); i++) {
if (a[b[i]] < b[i]) {
delete_num += a[b[i]];
}
if (a[b[i]] > b[i]) {
delete_num += a[b[i]] - b[i];
}
}
cout << delete_num;
}
copy
这份代码为什么只能过两个用例,是有什么特殊情况没考虑吗
#课程问答
| 关注
你的回复
请
登录
后回复