奖牌排序求调
  • 板块灌水区
  • 楼主_papaya
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/13 16:03
  • 上次更新2024/10/13 18:34:25
查看原帖
奖牌排序求调
682421
_papaya楼主2024/10/13 16:03

奖牌排序,样例都过不了,求

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct medal{
	int j,y,t,o;
};

bool cmp_j(const medal&a,const medal&b){
	if(a.j!=b.j){
		return a.j>b.j;
	}
}
bool cmp_y(const medal&a,const medal&b){
	if(a.y!=b.y){
		return a.y>b.y;
	}
}
bool cmp_t(const medal&a,const medal&b){
	if(a.t!=b.t){
		return a.t>b.t;
	}
} 

int main(){
	int n;
	cin>>n;
	vector<medal> m(n);
	for(int i=0;i<n;i++){
		cin>>m[i].j>>m[i].y>>m[i].t;
		m[i].o=i;
	}
	sort(m.begin(),m.end(),cmp_j);
	sort(m.begin(),m.end(),cmp_y);
	sort(m.begin(),m.end(),cmp_t);
	vector<int> rg(n),ry(n),rt(n);
	for(int i=0;i<n;i++){
		rg[m[i].o]=i+1;
	}
	for(int i=0;i<n;i++){
		ry[m[i].o]=i+1;
	}
	for(int i=0;i<n;i++){
		rt[m[i].o]=i+1;
	}
	for(int i=0;i<n;i++){
		int br=min({rg[i],ry[i],rt[i]});
		cout<<br<<endl;
	}
	return 0;
}
2024/10/13 16:03
加载中...