每个 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
结尾无空行
解题思路:题目难度不大,唯一需要注意是,需要处理好准考证号的存储,准考证号的大小为16,所以考虑使用string数组,在使用string数组时,一定要好好考虑如何能够更好的将准考证号和座位号更好的结合处理成更好的数据模式,整体难度不大。
//第一行一个整数N代表接下来输入的考生信息要N行,分别为准考证号(16位组成)这就意味着准考证号需要用string来处理,试机座位号,考试座位号
//然后再输入M,随后输入M个待查询的试机座位号,以空格分隔
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
int number = 0;
cin >> number;
int n = 0 , m = 0;//n为试机座位号,m为考试座位号
string arr[1001][2] , s1 , s2;//创建string数组
for(int i = 0 ; i < number ; i++)//通过创建一个string数组来对准考证号进行输入,通过下标来默认为试机座位号,在数组的第二行存储考试座位号形成一对一的关系
{
cin >> s1 >> n >> s2;
arr[n][0] = s1;
arr[n][1] = s2;
}
int middle = 0;
cin >> middle;
for(int i = 0 ; i < middle ; ++i)
{
cin >> n;
cout << arr[n][0] << " " << arr[n][1]<<endl;
}
return 0;
}