以下代码是 AC 代码,如果将第 15 行的 i <= pos 改为 i <= maxn 很明显有下标越界,但是为什么我把它改了之后洛谷评测机能过,提交记录
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+1;
int n,r[maxn],arr[maxn];
int main() {
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&r[i]);
sort(r+1,r+n+1);
int pos=0;
for (int i=1;i<=n;i++) {
if (r[i]==r[i-1]) arr[pos]++;
else arr[++pos]=1;
}
int res=n,Remain=arr[1];
for (int i=2;i<=pos;i++) {
if (arr[i]>Remain) {
res-=Remain;
Remain=arr[i];
}
else res-=arr[i];
}
printf("%d",res);
}