【PAT - 甲级1006】Sign In and Sign Out (25分)(STLmap)
題干:
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_timewhere 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:40Sample Output:
SC3021234 CS301133題目大意:
每天早上,第一個在電腦室簽名的人會打開門,最后一個在電腦室簽名的人會鎖上門。根據(jù)簽到記錄和簽到記錄,你應(yīng)該找到當天開門和鎖門的人。
解題報告:
直接模擬即可。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<stack> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define FF first #define SS second #define ll long long #define pb push_back #define pm make_pair using namespace std; typedef pair<int,int> PII; const int MAX = 2e5 + 5; int n; map<string,int> st,ed; char s[MAX]; int h1,m1,s1,h2,m2,s2; int main() {cin>>n;for(int i = 1; i<=n; i++) {scanf("%s %d:%d:%d %d:%d:%d",s,&h1,&m1,&s1,&h2,&m2,&s2);st[s] = h1*3600 + m1*60+s1;ed[s] = h2*3600 + m2*60+s2;}string stname,edname;int stt=0x3f3f3f3f,edt;for(auto x : st) {if(x.SS < stt) {stt = x.SS;stname = x.FF;}}for(auto x : ed) {if(x.SS > edt) {edt = x.SS;edname = x.FF;}}cout << stname << " " << edname << endl;return 0 ; }?
總結(jié)
以上是生活随笔為你收集整理的【PAT - 甲级1006】Sign In and Sign Out (25分)(STLmap)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交通银行信用卡积分活动 交通银行积分怎么
- 下一篇: 【基于Python】 - 人工智能机器学