PAT-1006 Sign In and Sign Out
题目
解题思路:
对时间进行排序即可
#include <bits/stdc++.h> using namespace std; struct node{ string name; int be,en; }stu[100000]; int format(string s){ return ((s[0]-'0')*10+(s[1]-'0'))*3600+((s[3]-'0')*10+(s[4]-'0'))*60+(s[6]-'0')*10+(s[7]-'0'); } bool cmp(node a,node b){ return a.be<b.be; } bool cmp2(node a,node b){ return a.en>b.en; } int main() { std::ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=0;i<n;i++){ string be,en; cin>>stu[i].name>>be>>en; stu[i].be = format(be); stu[i].en = format(en); } sort(stu,stu+n,cmp); cout<<stu[0].name; sort(stu,stu+n,cmp2); cout<<" "<<stu[0].name<<endl; return 0; }