赛时代码
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("duel3.in", "r", stdin);
long long n;
cin>>n;
long long arr[n];
int flag = 0;
for(int i = 0;i < n;i++) {
cin>>arr[i];
if(arr[i] > 2)
flag = 1;
}
long long ans = 0;
if(flag == 0) {
long long one = 0;
long long two = 0;
for(long long i = 0;i < n;i++) {
if(arr[i] == 1)
one++;
else if(arr[i] == 2)
two++;
}
if(one >= two)
ans = one;
else if(one < two)
ans = two;
}
else {
sort(arr, arr + n);
for(long long i = 1;i < n;i++) {
for(long long j = i - 1;j >= 0;j--) {
if(arr[j] != arr[i] && arr[j] != 0) {
arr[j] = 0;
break;
}
}
}
for(long long i = 0;i < n;i++) {
if(arr[i] != 0)
ans++;
}
}
cout<<ans;
return 0;
}
没想那么多,特殊性质写了个求众数的,测试是过了的,民间数据超时了,求调