比赛 20241125 评测结果 AAAAWWAAAA
题目名称 又是决斗 最终得分 80
用户昵称 徐诗畅 运行时间 1.105 s
代码语言 C++ 内存使用 13.46 MiB
提交时间 2024-11-25 09:54:31
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+5;
int n,a[N],vis[N];
bool cmp(int x,int y){
	return x>y;
}
int main(){
	freopen("duela.in","r",stdin);
	freopen("duela.out","w",stdout);
	scanf("%d",&n);
	for(int i = 1;i<=n;i++) scanf("%d",&a[i]);
	sort(a+1,a+1+n);
	int l =1,r=2,ans=0;
	while(r<=n){
		if(a[l]<a[r]&&!vis[l]&&!vis[r]){ans+=2,vis[l]=vis[r]=1; l++; r++;}
		else{
			r++;
			if(vis[l]) l++;
			r=(l==r)?r+1:r;
		}
	}
	ans=n-ans;
	sort(a+1,a+1+n,cmp); 
	memset(vis,0,sizeof(vis));
	l =1,r=2; int ans1=0;
	while(r<=n){
		if(a[l]>a[r]&&!vis[l]&&!vis[r]){ans1+=2,vis[l]=vis[r]=1; l++; r++;}
		else{
			r++;
			if(vis[l]) l++;
			r=(l==r)?r+1:r;
		}
	}
	printf("%d",min(ans,n-ans1));
	return 0;
}