測試使用dotnet-cnblog上傳markdown到部落格園
阿新 • • 發佈:2021-01-01
解法一:排序
struct Stu { string id; string start_time; string end_time; }; vector<Stu> v; int n; bool cmp1(Stu &a,Stu &b) { return a.start_time<b.start_time; } bool cmp2(Stu &a,Stu &b) { return a.end_time>b.end_time; } int main() { cin>>n; for(int i=0;i<n;i++) { string a,b,c; cin>>a>>b>>c; v.pb({a,b,c}); } sort(v.begin(),v.end(),cmp1); cout<<v[0].id; sort(v.begin(),v.end(),cmp2); cout<<' '<<v[0].id<<endl; //system("pause"); return 0; }
解法二:線性掃描即可,string
是按字典序大小比較的
int n; int main() { cin>>n; string open_id,open_time; string close_id,close_time; for(int i=0;i<n;i++) { string id,come_time,leave_time; cin>>id>>come_time>>leave_time; if(!i || come_time < open_time) { open_time = come_time; open_id = id; } if(!i || leave_time > close_time) { close_time = leave_time; close_id = id; } } cout<<open_id<<' '<<close_id<<endl; //system("pause"); return 0; }