您的位置:首页 > 其它

1006. Sign In and Sign Out (25)

2018-01-23 22:11 183 查看

简析:

(1)求第一个登录的人和最后一个登出的人; (2)m:记录的个数; (3)记录:id 登录的时间 登出的时间(hh:mm:ss; id为string,少于15字符)(4)关键在于如何比较时间,化为整数比 h*3600 + m*60 + s; (5)采用结构体, id, t1, t2;题目很简单,一次ac.
#include <iostream>
using namespace std;

struct node{
string id;
int t1;
int t2;
};

int main(int argc, const char * argv[]) {
int m;
cin >> m;
struct node n[m];

int hh, mm, ss;
for (int i = 0; i < m; i++) {
cin >> n[i].id;
scanf("%d:%d:%d", &hh, &mm, &ss);
n[i].t1 = hh * 3600 + mm * 60 + ss;
scanf("%d:%d:%d", &hh, &mm, &ss);
n[i].t2 = hh * 3600 + mm * 60 + ss;
}

int maxi = 0, max = n[0].t2, mini = 0, min = n[0].t1;
for (int i = 1; i < m; i++) {
if (max < n[i].t2) {
max = n[i].t2;
maxi = i;
}
if (min > n[i].t1) {
min = n[i].t1;
mini = i;
}
}

cout << n[mini].id << ' ' << n[maxi].id << endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: