三数组排序

来源:互联网 发布:mysql 增加临时表空间 编辑:程序博客网 时间:2024/06/06 05:24

Description

MSTC里有好多有特长的人, 有些是力量型人才,有些是智力型人才,有些是敏捷型的。现在告诉你 N 个人, 每个人的力量,智力,敏捷的值, 和每个人的编号。题目要求你将 N 个部员 按照力量 从大到小 排序, 如果两个部员的力量相同, 则按照 智力 值从大到小排序, 如果两个部员力量, 智力 都一样,则按照 敏捷从 小 到 大排序。 测试数据保证没有两个部员的 力量, 智力, 敏捷 全部相同。


Input

第一行 N :表示有 N 个同学。 (  1 <= N <= 500 )

接下来 N 行, 第 i 行有 3 个值, ai, bi, ci   a 代表 力量, b 代表智力, c 代表敏捷。 编号为 i ( i 是部员的编号, 1 <= i <= N )


Output

输出 N 行:


将排序后的部员编号输出。

每行一个编号

Sample Input

4

2 2 3

2 3 4

4 8 9

2 2 2

Sample Output

3

2

4

1


/**  *@author   houyong * */     #include<algorithm>#include<iostream>#include<stdio.h>#include<stdlib.h>#include<vector>//#define LOCALusing namespace std;bool cmp(vector<int> a,vector<int> b){   if(a[0]!=b[0])       return a[0]>b[0];   else if(a[0]==b[0] && a[1]!=b[1])       return a[1]>b[1];   else       return a[2]<b[2];}int main(){  #ifdef    LOCAL    freopen("in.txt", "r", stdin);    freopen("out.txt", "w", stdout);  #endif // LOCAL  int T,j,i,k,k1;  scanf("%d", &T); //T个人数据  vector<vector<int> > vec; //vec里存放T个人的测试数据               //直接push_back,不用初始化大小  for(j=0;j<T;j++)  {      vector<int> v0(3,0);//下面要用下标访问,则要初始化大小     for(i=0;i<3;i++)     {         scanf("%d", &v0[i]);     }     vec.push_back(v0);  }  vector<vector<int> > vec0 =vec;  sort(vec.begin(),vec.end(),cmp);  for(k=0;k<T;k++)  {      for(k1=0;k1<T;k1++)      {          if(vec[k] == vec0[k1])              cout<<k1+1<<endl;      }  }  return 0;}


0 0