比赛 20241125 评测结果 AAAAAAAAAW
题目名称 又是决斗 最终得分 90
用户昵称 wdsjl 运行时间 1.440 s
代码语言 C++ 内存使用 7.49 MiB
提交时间 2024-11-25 10:04:48
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 1e7+10;

int a[N],n,sum[N],b[N],rr;

int main(){
	freopen("duela.in","r",stdin);
	freopen("duela.out","w",stdout); 
	scanf("%d",&n);
	int mx=0;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	sort(a+1,a+1+n);
	int tot=0;
	for(int i=1;i<=n;i++){
		if(a[i]!=a[i-1]){
			tot++;
		}
		b[tot]++;
	}
//	for(int i=1;i<=tot;i++)cout<<b[i]<<" ";
//	cout<<endl;
	int cnt=0;
//	rr=b[1];
//	cout<<"  ";
	for(int i=2;i<=tot;i++){
		int q=0,s=min(b[i],b[i-1]);
		b[i]-=s;
		b[i-1]-=s;
		if(b[i]){
			q=min(sum[i-1],b[i]/2);
		}
		b[i]=b[i]+b[i-1]-2*q;
		sum[i]=s+q+sum[i-1];
//		cout<<b[i]<<" ";
	}
//	cout<<endl;
	printf("%d",b[tot]);
	return 0;
}