问题 F: 小白鼠排队
时间限制: 1 Sec 内存限制: 32 MB
题目描述
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
经验总结
sort的结构体排序,用结构数组名即可,cmp函数是更改的地方。
AC代码
#include<cstdio>
#include<algorithm>
using namespace std;
struct mouse
{
int wei;
char col[20];
}mou[110];
bool cmp(mouse a, mouse b)
{
return a.wei > b.wei;
}
int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
for(int i = 0; i < n; i++)
scanf("%d %s", &mou[i].wei, mou[i].col);
sort(mou, mou+n, cmp);
for(int i = 0; i < n; i++)
printf("%s\n", mou[i].col);
}
return 0;
}
本文详细解析了一道关于小白鼠按重量排序的经典算法题。通过使用C++的结构体和sort函数,实现了根据小白鼠重量从大到小输出其帽子颜色的排序过程。文章提供了完整的AC代码示例,帮助读者理解并掌握结构体排序的技巧。
1927

被折叠的 条评论
为什么被折叠?



