问题描述】
元宵节晚会上,参加节目表演的同学需要抽签决定出场顺序,序号小的同学先出场,现在已知n(0<n<100)位同学的姓名和抽到的号码(无重复),请将同学们的姓名,按照出场次序输出。
输入:第一行为一个数字n,表示班上有n名同学的信息。
接下来有n行,每行包括同学的姓名和出场号,以空格隔开。
输出:n行,每行表示一个按照出场号排好的同学姓名。
注:假设班上无同名的学生。
【样例输入】
5
xinyu 4
haomiao 3
tiansen 6
jintao 2
zhangze 5
【样例输出】
jintao
haomiao
xinyu
zhangze
tiansen
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
vector<pair<string, int>> a;
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
string name;
int no;
cin >> name >> no;
a.push_back({name, no});
}
sort(a.begin(), a.end(), [](const auto &lhs, const auto &rhs)
{ return lhs.second < rhs.second; });
for_each(a.begin(), a.end(), [](const auto &v)
{ cout << v.first << '\n'; });
return 0;
}