这是python的```python a=int(input()) lis=[] lis_shu=[] for i in list(map(int,input().split())): if i not in lis: lis.append(i) lis_shu.append(1) else: lis_shu[lis.index(i)]+=1 lis1=[[lis[],lis_shu[]] for _ in range(len(lis))] lis1.sort(key=lambda x:x[0]) lis1.append([float('inf'),float('inf')]) ans=lis1[0][1] ma=-1 shao=float('inf') for i in range(1, len(lis1)): if lis1[i][0]-lis1[i-1][0]==1: ans+=lis1[i][1] ma=max(ma,lis1[i][1]) else: if ma!=1: ans//=ma shao=min(shao,ans) ans=lis1[i][1] ma=-1 print(shao)
这是cpp的,但是最后一个显示wa了,不知道哪个细节错了```cpp
#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
#include <limits>
int main() {
int a;
std::cin >> a;
std::unordered_map<int, int> count_map;
std::vector<int> nums(a);
for (int& num : nums) {
std::cin >> num;
count_map[num]++;
}
std::vector<std::pair<int, int>> lis1;
for (const auto& kv : count_map) {
lis1.emplace_back(kv.first, kv.second);
}
std::sort(lis1.begin(), lis1.end());
lis1.push_back({std::numeric_limits<int>::max(), std::numeric_limits<int>::max()});
long long ans = lis1[0].second;
int ma = -1;
long long shao = std::numeric_limits<long long>::max();
for (size_t i = 1; i < lis1.size(); ++i) {
if (lis1[i].first - lis1[i-1].first == 1) {
ans += lis1[i].second;
ma = std::max(ma, lis1[i].second);
} else {
if (ma != 1) {
ans /= ma;
}
shao = std::min(shao, ans);
ans = lis1[i].second;
ma = -1;
}
}
std::cout << shao << std::endl;
return 0;
}
```劳烦大佬指点(最好是能解决py的超时问题谢谢啦)