题目要求按照小白鼠的体重排序,并输出排序后每只小白鼠对应的颜色。
总时间限制: 1000ms 内存限制: 65536kB
N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。
输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于1000的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
注意:白鼠的重量各不相同。
按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
3
30 red
50 blue
40 green
blue
green
red
由于小白鼠的体重各不相同,因此不需要考虑相同体重的顺序问题,排序输出即可。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct mouse {
int w;
char c[11];
};
bool compare(mouse m1, mouse m2) {
return m1.w > m2.w;
}
int main() {
int n, i;
cin >> n;
vector<mouse> vm;
for (i = 0; i < n; ++i) {
mouse m;
cin >> m.w >> m.c;
vm.push_back(m);
}
sort(vm.begin(), vm.end(), compare);
for (i = 0; i < n; ++i) {
cout << vm[i].c << endl;
}
return 0;
}
2943.cpp 代码长度:420B 内存:208kB 时间:13ms 通过率:95% 最小内存:208kB 最短时间:0ms
每一只小白鼠可以用结构体来存储,调用标准模板库的快排函数,由于结构体不是基本类型,所以需要自己构造一个比较函数作为sort的参数,最后按顺序输出即可。
有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。