85pts 求调,悬2关
查看原帖
85pts 求调,悬2关
1033283
Sugar_Fate楼主2024/10/27 12:23
#include<bits/stdc++.h>
#define long long int
using namespace std;
int n,ans;
map<int,int> mp;
struct node{
	int num;
	int many;
	int can;
}a[1000005];
signed main(){
	cin>>n;
	for(int i=0;i<n;i++){
		int x;
		cin>>x;
		mp[x]++;
	}
	int len=0;
	for(auto it:mp){
		a[len].num=it.first;
		a[len].many=it.second;
		a[len].can=a[len].many;
		len++;
	}
	for(int i=0;i<=len;i++){
		for(int j=0;j<i;j++){
			if(a[j].num==0||a[i].can==0){
				continue;
			}
			if(a[j].many<=a[i].can){
				a[j].many=0;
				a[i].can-=a[j].many;
			}else if(a[j].many>a[i].can){
				a[j].many-=a[i].can;
				a[i].can=0;
			}
		}
	}
	for(int i=0;i<=len;i++){
		ans+=a[i].many;
	}
	cout<<ans;
	return 0;
}

考场脑残代码

2024/10/27 12:23
加载中...