禅城网站建设联系电话,排名优化seo公司,深圳网站建设多少钱,学校网站建设重要性题目
每个 PAT 考生在参加考试时都会被分配两个座位号#xff0c;一个是试机座位#xff0c;一个是考试座位。正常情况下#xff0c;考生在入场时先得到试机座位号码#xff0c;入座进入试机状态后#xff0c;系统会显示该考生的考试座位号码#xff0c;考试时考生需要换…题目
每个 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暴力求解。先把考生信息存下来结构体数组或者开3个数组都可以。然后对每次输入的试机号都在考生信息里遍历一遍找到准考证号和考试座位号。方法2把试机号作为数组下标开两个数组N1或者用一个结构体数组存(N1)然后对每次输入的试机号直接就可输出与待查试机号相等的考生信息。
AC代码
方法1代码
#includeiostream
using namespace std;
struct Info
{string id;int test;int exam;
};
int main()
{int i,j,N,M;cinN;Info stu[N];for(i0; iN; i){cinstu[i].idstu[i].teststu[i].exam;}cinM;int temp;for(i0; iM; i){cintemp;for(j0; jN; j){if(tempstu[j].test){coutstu[j].id stu[j].exam;break;}}if(i!M-1)coutendl;}return 0;
}方法2代码
#includeiostream
using namespace std;
struct Info
{string id;int exam;
};
int main()
{int i,N,M,test,exam,temp;string id;cinN; Info stu[N1];stu[0].id ; stu[0].exam0; for(i0; iN; i){cinidtestexam;stu[test].idid;stu[test].examexam; }cinM;for(i0; iM; i){cintemp;coutstu[temp].id stu[temp].exam;if(i!M-1)coutendl;}return 0;
}在数据量较小的时候方法1和方法2并没有太多区别。但当数据量较大时方法1有超时的风险。
更多题解 pat 乙级(Basic Level) 题解汇总持续更新C