奖牌排序,样例都过不了,求
#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;
}