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

开门人和关门人

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")

全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务