问题 F: 小白鼠排队
时间限制: 1 Sec 内存限制: 32 MB
献花: 46 解决: 44
[献花][花圈][TK题库]
题目描述
N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。
输入
多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
注意:白鼠的重量各不相同。
输出
每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
样例输入
1
79 omi
9
46 lcg
92 cru
37 ceq
54 vhr
17 wus
27 tnv
13 kyr
95 wld
34 qox
样例输出
omi
wld
cru
vhr
lcg
ceq
qox
tnv
wus
kyr
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int MaxN = 100;
typedef struct
{
int w;
char color[11];
}Rat;
bool cmp(Rat a, Rat b)
{
return a.w > b.w;
}
int main()
{
#ifdef _DEBUG
ifstream cin("data.txt");
#endif // _DEBUG
int n;
Rat rat[MaxN];
while (cin >> n)
{
for (int i = 0; i < n; ++i)
cin >> rat[i].w >> rat[i].color;
sort(rat, rat + n, cmp);
for (int i = 0; i < n; ++i)
cout << rat[i].color << endl;
}
#ifdef _DEBUG
cin.close();
system("pause");
#endif // _DEBUG
return 0;
}
/**************************************************************
Problem: 2043
User: Sharwen
Language: C++
Result: 升仙
Time:4 ms
Memory:1708 kb
****************************************************************/