XDOJ1121 - 排序

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

解题思路:

主要考察排序,当然可以自己写一个排序程序。但是这里我用于STL中的sort排序。

#include
#include
#include
using namespace std;

struct MSTC
{
    int a,b,c;
    int id;
};
vector stu;
bool lessComp(const MSTC& r1,const MSTC& r2)
{
   if(r1.a>r2.a) return true;
   else if(r1.a==r2.a&&r1.b>r2.b) return true;
   else if(r1.a==r2.a&&r1.b==r2.b&&r1.c>N)
    {
        for(int i=0;i>t.a>>t.b>>t.c;
            t.id = i+1;
            stu.push_back(t);
        }
        sort(stu.begin(),stu.end(),lessComp);
        for(int i=0;i

 

最后欢迎大家访问我的个人网站: 1024s

你可能感兴趣的:(ACM)