PAT B1041 考试座位号

PAT B1041 考试座位号

题目描述:

  每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

  输入格式:
  输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
  考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

  输出格式:
  对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。

  输入样例:
  4
  3310120150912233 2 4
  3310120150912119 4 1
  3310120150912126 1 3
  3310120150912002 3 2
  2
  3 4

  输出样例:
  3310120150912002 2
  3310120150912119 1

参考代码:

 1 /****************************************************
 2 PAT B1041 考试座位号
 3 ****************************************************/
 4 #include <iostream>
 5 #include <map>
 6 
 7 using namespace std;
 8 
 9 struct StuInfo {
10     string stuentId = "";
11     int examLoc = 0;
12 };
13 
14 int main() {
15     int infoCount = 0, questCount = 0;
16     
17     cin >> infoCount;
18 
19     map<int, StuInfo> InfoList;        //创建以试机座位号为key的映射
20 
21     string stuId;
22     int testNum = 0, examNum = 0;
23     for (int i = 0; i < infoCount; ++i) {
24         cin >> stuId >> testNum >> examNum;
25 
26         InfoList[testNum].stuentId = stuId;
27         InfoList[testNum].examLoc = examNum;
28     }
29 
30     cin >> questCount;
31     for (int i = 0; i < questCount; ++i) {
32         cin >> testNum;                //获取在询问学生的试机座位号
33 
34         cout << InfoList[testNum].stuentId << ' ' << InfoList[testNum].examLoc;
35 
36         if (i != questCount - 1) cout << endl;
37     }
38 
39     return 0;
40 }

注意事项:

  无。

猜你喜欢

转载自www.cnblogs.com/mrdragon/p/11397400.html