Sign In and Sign Out

  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

题目解析

  本题给出一天内登录机房的总人数m,之后给出m行数据,每行为一个人的登录信息,其中包括一个长度不超过15的id, 一个格式为HH:MM:SS的登录时间inTime,和一个格式为HH:MM:SS的登出时间outTime。

  第一个登录机房的人将是开门者,最后一个登出机房的人将是锁门者,要求输出开门者与锁门者的id。

  C++的string比较两个长度相等的字符串大小是由首位开始按位比较ASCII码,首位ASCII码大的字符串视为较大字符串,若首位相等边比较第二位,依次向后比较。者正好符合我们对HH:MM:SS类型的时间比较,较大的时间在字符串比较时依然较大,这样我们便可以将时间存为string直接进行比较。

 #include <bits/stdc++.h>
using namespace std;
int main()
{
int m;
string unlockedId, lockedId, minTime = "24:00:00", maxTime = "00:00:00";
scanf("%d", &m); //输入登录总人数
for(int i = ; i < m; i++){
string id, inTime, outTime;
cin >> id >> inTime >> outTime; //输入登录者id 登录时间 登出时间
if(minTime > inTime){ //如果登录时间早于当早登录时间
minTime = inTime; //记录最早登录时间为当前登录时间
unlockedId = id; //记录开门者id为当前id
}
if(maxTime < outTime){ //如果登出时间晚于最晚登录时间
maxTime = outTime; //记录最晚登出时间为当前登出时间
lockedId = id; //记录锁门者id为当前id
}
}
cout << unlockedId << " " << lockedId << endl;
//输出开门者和锁门者的id
return ;
}

PTA (Advanced Level) 1006 Sign In and Sign Out的更多相关文章

  1. PTA(Basic Level)1006.Sign In and Sign Out

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...

  2. PTA(Advanced Level)1036.Boys vs Girls

    This time you are asked to tell the difference between the lowest grade of all the male students and ...

  3. PAT (Advanced Level) 1006. Sign In and Sign Out (25)

    简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...

  4. PTA (Advanced Level) 1004 Counting Leaves

    Counting Leaves A family hierarchy is usually presented by a pedigree tree. Your job is to count tho ...

  5. PTA (Advanced Level) 1020 Tree Traversals

    Tree Traversals Suppose that all the keys in a binary tree are distinct positive integers. Given the ...

  6. PTA(Advanced Level)1025.PAT Ranking

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  7. PTA (Advanced Level) 1009 Product of Polynomials

    1009 Product of Polynomials This time, you are supposed to find A×B where A and B are two polynomial ...

  8. PTA (Advanced Level) 1008 Elevator

    Elevator The highest building in our city has only one elevator. A request list is made up with Npos ...

  9. PTA (Advanced Level) 1007 Maximum Subsequence Sum

    Maximum Subsequence Sum Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous su ...

随机推荐

  1. VirtualBox 安装 CentOS6.5 教程

    VirtualBox安装 CentOS6.5教程 1.选择第一个进行安装 2.选择右面的 skip 进入安装 3.点击next 4.选择中文简体 5.选择美式键盘 6.选择第一个 7.输入主机名 8. ...

  2. hdu 5073 有坑+方差贪心

    http://acm.hdu.edu.cn/showproblem.php?pid=5073 就是给你 n 个数,代表n个星球的位置,每一个星球的重量都为 1 开始的时候每一个星球都绕着质心转动,那么 ...

  3. 初始Hive

    Hive 背景 引入原因 对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一推MapReduce代码 对于统计任务,只能由懂MapReduce的程序员才能搞定 耗时耗力,更多精力没有有效 ...

  4. ASP.NET MVC IActionFilter IResultFilter IExceptionFilter/HandleError

    一.IActionFilter 1.基本定义 在action的执行前后进行AOP拦截. IActionFilter接口定义如下: public interface IActionFilter { // ...

  5. scikit-FEM-例1-求解Possion边值问题

    """ Author: kinnala Solve the problem -∇²u = 1 with zero boundary conditions on a uni ...

  6. Windows核心编程:第7章 线程调度、优先级和关联性

    Github https://github.com/gongluck/Windows-Core-Program.git //第7章 线程调度.优先级和关联性.cpp: 定义应用程序的入口点. // # ...

  7. UWP FillRowViewPanel

    最近有童鞋有这种需求,说实话我不知道这个Panel怎么起名字. 效果连接https://tuchong.com/tags/风光/ 下面是我做成的效果,可以规定每个Row的Items个数 2个 3个 4 ...

  8. AEAI Portal 权限体系说明

    1.概述 在数通畅联的产品体系中,AEAI Portal毫无疑问的占据了很重要的地位,在这里我们将通过参考Portal样例,讲述一下AEAI Portal权限体系的控制方法.在Portal使用过程中, ...

  9. Android 四大组件之“ BroadcastReceiver ”

    前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...

  10. 浏览器特权域XSS漏洞

    导语:科普什么是浏览器特权域XSS,可以用来干什么? 作者:天析 团队:Arctic Shell 为什么科普这个? 今天在群里看到有表姐说这个,然后恰好又有学姐在问什么是特权域XSS,于是就来说说这个 ...