30pts 求助
查看原帖
30pts 求助
1475943
libu2333楼主2024/10/13 12:13

暴力但WA,马蜂不好,见谅

#include<bits/stdc++.h>
using namespace std;
struct score{
	int val,rnk;
};
bool comp1(score a,score b){return a.val>b.val;}
score a[200000],b[200000],c[200000];
map<int,int> mp;
int n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i].val>>b[i].val>>c[i].val;
		a[i].rnk=i+1;
		b[i].rnk=i+1;
		c[i].rnk=i+1;
	}
	sort(a,a+n,comp1);
	sort(b,b+n,comp1);
	sort(c,c+n,comp1);
	for(int i=0;i<n;i++){
		if(mp[a[i].rnk]==0) mp[a[i].rnk]=i+1;
		if(mp[b[i].rnk]==0) mp[b[i].rnk]=i+1;
		if(mp[c[i].rnk]==0) mp[c[i].rnk]=i+1;
		if(mp[a[i].rnk]>i+1) mp[a[i].rnk]=i+1;
		if(mp[b[i].rnk]>i+1) mp[b[i].rnk]=i+1;
		if(mp[c[i].rnk]>i+1) mp[c[i].rnk]=i+1;
	}
	for(int i=1;i<=n;i++) cout<<mp[i]<<endl;
	return 0;
}
2024/10/13 12:13
加载中...