题目描述:
班级中有N个学生,学生信息包括学号,姓名,成绩。要求根据学号查询姓名和成绩信息。
输入格式:
第一行输入一个数字N表示学生个数
接下来N行格式为
stuent_id name score
分别表示学号,姓名,成绩。
第N+2行输入一个整数Q,表示查询次数
接下来Q行每行一个学号,学号必定存在
输出格式:
对于每一次查询,输出姓名和成绩,中间用空格分离
输入样例:
3
3019213456 user01 50
3019213457 user02 100
3921244399 user03 99
2
3019213456
3019213457
输出样例:
user01 50
user02 100
数据范围与提示
1<=N,Q<=100
student_id为十位数字
姓名只包含小写字母和数字
分数为0~100的整数
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct Student {
long number;
string name;
int score;
};
int main(void)
{
int n;
cin >> n;
map<long, Student> students;
for (int i = 0; i < n; ++i) {
Student tmp;
cin >> tmp.number >> tmp.name >> tmp.score;
students.insert(make_pair(tmp.number, tmp));
}
int q;
cin >> q;
for (int i = 0; i < q; ++i) {
long qn;
cin >> qn;
map<long, Student>::iterator iter = students.find(qn);
if (iter == students.end()) {
cout << "not find " << qn << endl;
} else {
cout << iter->second.name << " " << iter->second.score << endl;
}
}
return 0;
}