问题 C: 查找学生信息
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
输入N个学生的信息,然后进行查询。
输入
输入的第一行为N,即学生的个数(N<=1000)
接下来的N行包括N个学生的信息,信息格式如下:
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:
02
03
01
04
输出
输出M行,每行包括一个对应于查询的学生的信息。
如果没有对应的学生信息,则输出“No Answer!”
样例输入
5
001 张三 男 19
002 李四 男 20
003 王五 男 18
004 赵六 女 17
005 刘七 女 21
7
003
002
005
004
003
001
006
样例输出
003 王五 男 18
002 李四 男 20
005 刘七 女 21
004 赵六 女 17
003 王五 男 18
001 张三 男 19
No Answer!
#include <iostream>
#include <unordered_map>
using namespace std;
struct student_info {
string name;
string sex;
int age;
student_info(string _name, string _sex, int _age) {
name = _name;
sex = _sex;
age = _age;
}
};
int main() {
int n, m;
unordered_map<string, student_info> studentInfo;
while (cin >> n) {
while (n--) {
string no;
string name;
string sex;
int age;
cin >> no >> name >> sex >> age;
studentInfo.insert({no, student_info(name, sex, age)});
}
cin >> m;
while (m--) {
string no;
cin >> no;
if (studentInfo.count(no) != 0)
cout << no << " " << studentInfo.find(no)->second.name << " " << studentInfo.find(no)->second.sex << " "
<< studentInfo.find(no)->second.age << endl;
else
cout << "No Answer!" << endl;
}
}
return 0;
}