题解 | #开门人和关门人#

开门人和关门人

https://www.nowcoder.com/practice/a4b37b53a44d454ab0834e1517983215

#include <bits/stdc++.h>
using namespace std;
class person{
    public:
    int inTime;
    int outTime;
    string ID;
};
int toTime(string s){
    for(auto it = s.begin();it!=s.end();){
        if(*it==':')it=s.erase(it);
        else it++;
    }
    //无冒号的时间转换为int
    return stoi(s);
}
int main() {
    int n;
    while(cin>>n){
        person arr[n];
        for(int i =0;i<n;i++){
            string id,in,out;
            cin>>id>>in>>out;
            person p;
            p.ID = id;
            p.inTime = toTime(in);
            p.outTime = toTime(out);
            arr[i] = p;
        }
        int openTime=INT_MAX,closeTime=-1;
        int openIndex=0,closeIndex=0;
        for(int i =0;i<n;i++){
            if(arr[i].inTime<openTime){
                openTime = arr[i].inTime;
                openIndex = i;
            }
            if(arr[i].outTime>closeTime){
                closeTime = arr[i].outTime;
                closeIndex = i;
            }
        }
        cout<<arr[openIndex].ID<<" "<<arr[closeIndex].ID<<endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
吃不饱的肱二头肌很想退休:tnnd 我以为选妹子呢,亏我兴高采烈的冲进来😠
投递快手等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务