题目

每个 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:把试机号作为数组下标,开两个数组(N+1)或者用一个结构体数组存(N+1),然后对每次输入的试机号,直接就可输出与待查试机号相等的考生信息。

AC代码

方法1代码

#include<iostream>
using namespace std;
struct Info
{string id;int test;int exam;
};
int main()
{int i,j,N,M;cin>>N;Info stu[N];for(i=0; i<N; i++){cin>>stu[i].id>>stu[i].test>>stu[i].exam;}cin>>M;int temp;for(i=0; i<M; i++){cin>>temp;for(j=0; j<N; j++){if(temp==stu[j].test){cout<<stu[j].id<<" "<<stu[j].exam;break;}}if(i!=M-1)cout<<endl;}return 0;
}

方法2代码

#include<iostream>
using namespace std;
struct Info
{string id;int exam;
};
int main()
{int i,N,M,test,exam,temp;string id;cin>>N;   Info stu[N+1];stu[0].id=" ";    stu[0].exam=0; for(i=0; i<N; i++){cin>>id>>test>>exam;stu[test].id=id;stu[test].exam=exam; }cin>>M;for(i=0; i<M; i++){cin>>temp;cout<<stu[temp].id<<" "<<stu[temp].exam;if(i!=M-1)cout<<endl;}return 0;
}

在数据量较小的时候,方法1和方法2并没有太多区别。但当数据量较大时,方法1有超时的风险。

更多题解
pat 乙级(Basic Level) 题解汇总(持续更新)(C++)

pat 乙级 1041 考试座位号(C++)相关推荐

  1. PAT 乙级 1041 考试座位号 (15分)

    1041 考试座位号 (15分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的 ...

  2. PAT乙级-1041 考试座位号 (15分)

    点击链接PAT乙级-AC全解汇总 题目: 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示 ...

  3. [PAT乙级]1041 考试座位号

    每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...

  4. PAT 乙级 1041. 考试座位号(15) Java版

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...

  5. PAT乙级—1041 考试座位号 (15分)

    每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...

  6. PAT乙级 | 1041 考试座位号 (15分)

    每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...

  7. PAT 乙级 1041 考试座位号

    思路是 以"试机座位号"为关键字,"准考证号"和"考试座位号"为值建立一张表,把信息储存到这张表内,查询的时候直接查表即可. #includ ...

  8. PAT乙级-1041 考试座位号

    题目描述 实现代码 #include<iostream> #include<string> using namespace std;int main(void) {int n; ...

  9. C++学习之路 | PTA乙级—— 1041 考试座位号 (15 分)(精简)

    1041 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生 ...

最新文章

  1. Linux拷贝数据死机了,Linux系统“死机”时怎么办?
  2. 一本Python数据分析入门宝藏书,快藏不住了!
  3. Redis存储总用String?你大概错过了更优的使用方法
  4. Taylor Swift - Red
  5. 扑克牌比大小c语言,算了算学了有一个月c语言了,写了个扑克牌程序
  6. Direct3D的一些小贴士收藏(转载)
  7. “Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)
  8. 人在囧途!12306买到相同高铁票 回应:可能是机器故障
  9. 【2021Java最新学习路线】java前端开发
  10. CCF201712-5 商路(60分题解链接)
  11. 10个有关RESTful API良好设计的最佳实践
  12. Azure KUDU工具
  13. 读书笔记(从0到1)
  14. somachine3.1安装包和注册文件
  15. 搭讪培训班 - 名品试用 - YOKA时尚论坛 - YOKA社区
  16. WPA3也不安全啦?WPA3-R3 H2E了解一下
  17. 2023湖南大学计算机考研信息汇总
  18. 稳压集成块LM78XX LM79XX
  19. DSO源码解析学习笔记(初始化)
  20. ③计算机病毒实验实验报告

热门文章

  1. powermock模拟对象_使用PowerMock模拟构造函数
  2. apache wicket_Apache Wicket:记住我的功能
  3. jaxb需要jar包吗_JAXB –不需要注释
  4. Redis教程:NoSQL键值存储
  5. 使用Spring Cloud休息客户电话
  6. 使用Spring Boot对REST URL进行集成测试
  7. 使用Docker,Chef和Amazon OpsWorks进行集群范围的Java / Scala应用程序部署
  8. Java 8 Friday Goodies:SQL ResultSet流
  9. 实体管理器的类型:应用程序管理的EntityManager
  10. NoSQLUnit 0.3.0发布