输入格式: 第一行输入一个正整数 n,表示人数。 接下来的 n 行,每行输入一个人的姓名和年龄,中间用空格分隔。 输出格式: 按照年龄从小到大排序输出,年龄相同时按照姓名的字典序从小到大排序输出。 输入样例: 3 Tom 18 Jerry 20 Lucy 18 输出样例:
时间: 2024-02-19 14:03:52 浏览: 77
我们第一行包括两个整数n,k(1<=n<=100,k<=6e5),表示有n个数字,目标和为k 第二行输入n个整数(c1 c2
这是一个关于排序的问题,可以使用C++中的STL库来实现。具体代码如下:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
struct Person {
string name;
int age;
};
bool cmp(const Person& p1, const Person& p2) {
if (p1.age != p2.age) {
return p1.age < p2.age;
} else {
return p1.name < p2.name;
}
}
int main() {
int n;
cin >> n;
vector<Person> persons(n);
for (int i = 0; i < n; i++) {
cin >> persons[i].name >> persons[i].age;
}
sort(persons.begin(), persons.end(), cmp);
for (int i = 0; i < n; i++) {
cout << persons[i].name << " " << persons[i].age << endl;
}
return 0;
}
```
输入格式如题目所示,首先输入一个正整数n,表示人数,然后接下来的n行中,每行输入一个人的姓名和年龄,中间用空格隔开。我们使用一个结构体Person来存储每个人的姓名和年龄。为了实现按照年龄从小到大排序输出,我们需要自定义一个比较函数cmp,其中如果两个人的年龄不同,则按照年龄从小到大排序,如果两个人的年龄相同,则按照姓名的字典序从小到大排序。最后使用STL库中的sort函数对所有人按照cmp函数的规则进行排序,然后按照顺序输出每个人的姓名和年龄即可。
阅读全文