PAT (Advanced Level) 1006 Sign In and Sign Out (25 分)
发布日期:2021-06-29 12:22:21 浏览次数:2 分类:技术文章

本文共 2129 字,大约阅读时间需要 7 分钟。

序:

老套路了,结构体+排序

At the beginning of every day, the first person who signs in the computer room will unlock the door, and the last one who signs out will lock the door. Given the records of signing in’s and out’s, you are supposed to find the ones who have unlocked and locked the door on that day.

Input Specification:

Each input file contains one test case. Each case contains the records for one day. The case starts with a positive integer M, which is the total number of records, followed by M lines, each in the format:

ID_number Sign_in_time Sign_out_time

where times are given in the format HH:MM:SS, and ID_number is a string with no more than 15 characters.

Output Specification:

For each test case, output in one line the ID numbers of the persons who have unlocked and locked the door on that day. The two ID numbers must be separated by one space.

Note: It is guaranteed that the records are consistent. That is, the sign in time must be earlier than the sign out time for each person, and there are no two persons sign in or out at the same moment.

Sample Input:

3

CS301111 15:30:28 17:00:10
SC3021234 08:00:00 11:25:25
CS301133 21:45:00 21:58:40

Sample Output:

SC3021234 CS301133

题目概述:

找出最先到的人和最晚走的人

分析:

建立结构体,cmp排序

//经典结构体套路了,还有cmp排序#include
using namespace std;struct person{
string name; int h1, m1, s1; int h2, m2, s2;}personlist[1010];bool cmp1(person a, person b){
return (a.h1 != b.h1) ? (a.h1 < b.h1) : ((a.m1 != b.m1) ? (a.m1 < b.m1) : (a.s1 < b.s1));}bool cmp2(person a, person b){
return (a.h2 != b.h2) ? (a.h2 > b.h2) : ((a.m2 != b.m2) ? (a.m2 > b.m2) : (a.s2 > b.s2));}int main(){
int m; cin >> m; for(int i = 0; i < m; i++) {
cin >> personlist[i].name; scanf("%d:%d:%d", &personlist[i].h1, &personlist[i].m1, &personlist[i].s1); scanf("%d:%d:%d", &personlist[i].h2, &personlist[i].m2, &personlist[i].s2); } sort(personlist, personlist + m, cmp1); cout << personlist[0].name << " "; sort(personlist, personlist + m, cmp2); cout << personlist[0].name << endl; return 0;}

总结:

string的输出时用cin可以省去很多麻烦。

转载地址:https://bridge-killer.blog.csdn.net/article/details/115429399 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) 1008 Elevator (20 分)
下一篇:PAT (Advanced Level) 1005 Spell It Right (20 分)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 03时06分32秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

数据标记又出神器!用Create ML进行目标检测 2019-04-29
这篇微服务架构入门指南,7岁小孩也能学会 2019-04-29
用深度学习打造艺术大师:照片变身的“魔法” 2019-04-29
必看!今年最火的五大Python框架 2019-04-29
掌握代码背后的这种语言,让你一招通吃天下! 2019-04-29
最终榜单!2019年人工智能的15个热门趋势 2019-04-29
揭秘卷积神经网络热力图:类激活映射 2019-04-29
骂谷歌,怼百度,批腾讯,吴军为何DISS互联网公司没得怕的? 2019-04-29
图灵取代瓦特上位英镑新钞,“罪犯”何以与英国女王并肩? 2019-04-29
7*24待命的AI教师,会给学生带来什么影响? 2019-04-29
让程序媛不再是稀有物种,这五项措施很重要! 2019-04-29
抢票 | AI未来说学术论坛第七期 自动驾驶专场 2019-04-29
别争了!人工智能时代真的不需要文科生? 2019-04-29
JavaScript九大面试问题集锦,助你顺利通关! 2019-04-29
今日芯声 | 中国开发者创建的repo正在破坏GitHub Trending? 2019-04-29
生物圈融合技术圈,AI是如何拯救人类家园的? 2019-04-29
今日芯声 | 从“罪犯”到“英镑人物”,图灵比肩英国女王 2019-04-29
今日芯声 | Python和Java到底谁是老大?来看7月编程语言榜单 2019-04-29
去巴黎shopping还是日本看雪?AI定制化帮你搞定一切 2019-04-29
今日芯声 | Android麻烦了!鸿蒙OS将让它变得更脆弱 2019-04-29