【1006 25 时间处理】 Sign In and Sign Out

传送门

题意

给出 \(m\) 条出入记录,格式为(id,in_time,out_time),id 区分人,时间格式为 hh : mm : ss,找出第一个进入的和最后一个离开的人的 id

数据范围

\(0<|id|\leq 15\)

题解

  • 简单的方式是将所有的时间转化为秒数直接对比数值的大小
  • 通过格式化输入可以直接获得数值不用进行字符串的处理

Code

#include <bits/stdc++.h>
using namespace std;
pair<string, int> p;
string unlck, lck;
int mi = 999999, mx = -1;
int main() {
	int m; cin >> m;
	for (int i = 0; i < m; i++) {
		string id; cin >> id;
		int h, m, s; scanf("%d:%d:%d", &h, &m, &s);
		int t = h * 3600 + m * 60 + s;
		if (t < mi) unlck = id, mi = t;
		scanf("%d:%d:%d", &h, &m, &s);
		t = h * 3600 + m * 60 + s;
		if (t > mx) lck = id, mx = t;
	}
	cout << unlck << ' ' << lck;
}
posted @ 2021-01-25 13:43  Hyx'  阅读(74)  评论(0)    收藏  举报