PAT甲级 1006 签到签出

原题链接

每天第一个到机房的人负责开门,最后一个从机房离开的人负责锁门。

现在,给定每个人的签到与签出记录,请你找出当天开门的人以及锁门的人分别是谁。

输入格式
第一行包含整数 M,表示共有 M 个人的签到签出记录。

接下来 M 行,每行的形式如下:

ID_number Sign_in_time Sign_out_time
时间以 HH:MM:SS 形式给出,ID_number 是一个长度不超过 15 的字符串。

输出格式
共一行,输出开门人和锁门人的ID_number,用一个空格隔开。

数据范围
1≤M≤10,
数据保证每个人的签到时间早于签出时间,并且不会出现两个人同时签到或同时签出的情况。

输入样例:
3
CS301111 15:30:28 17:00:10
SC3021234 08:00:00 11:25:25
CS301133 21:45:00 21:58:40
输出样例:
SC3021234 CS301133

我的解法:

#include <iostream>
#include <string>
using namespace std;
int main(){
    string first_id,last_id,first_time,last_time;
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        string id,ftime,ltime;
        cin>>id>>ftime>>ltime;
        if(ftime<first_time||!i){
            first_time = ftime;
//             cout<<"first_time"<<first_time<<endl;
            first_id = id;
        }
        if(ltime>last_time||!i){
            last_time = ltime;
//             cout<<"last_time"<<last_time<<endl;
            last_id = id;
        }
    }
    cout<<first_id<<" "<<last_id;
    return 0;
}

收获:

c++ string可以直接比时间大小

猜你喜欢

转载自blog.csdn.net/weixin_45660485/article/details/124918913