80分求条(玄关)
查看原帖
80分求条(玄关)
1024143
yangjicheng2011楼主2024/10/26 21:45
#include<bits/stdc++.h>
using namespace std;
int a[500001];
int hu;
int top=0;
int op[500001];
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	sort(a+1,a+n+1);
	for(int i=2;i<=n;i++){
		if(a[i]!=a[i-1]){
			hu=i-1;
			break;
		}
	}
	int ans=hu;
	for(int i=hu+1;i<=n;i++){
		int cnt=1;
		while(a[i]==a[i+1]&&i<=n){
			cnt++;
			i++;
		}
		if(ans<cnt){
			op[++top]=ans;
			ans=cnt-ans;
		}
		else{
			op[++top]=cnt;
			ans=ans-cnt;
		}
		ans+=cnt;
	}
	for(int i=1;i<=top;i++){
		n-=op[i];
	}
	printf("%d\n",n);
}
2024/10/26 21:45
加载中...