题目描述
解题思路
直接暴力做…ORZ
参考代码
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 500010;
struct Time{
int start,end;
}t[maxn];
int tran(int h,int m){return h*60+m;}
bool cmp(Time t1,Time t2){return t1.start < t2.start;}
int main()
{
int n,sh,sm,eh,em;
while(~scanf("%d",&n)){
for (int i = 0;i < n;i++){
scanf("%d:%d %d:%d",&sh,&sm,&eh,&em);
t[i].start = tran(sh,sm);
t[i].end = tran(eh,em);
}
sort(t,t+n,cmp);
int rear = 0;
int ans = 0;
for (int i = 0;i < n;i++){
if (t[i].start >= rear)
ans += t[i].start - rear;
if (t[i].end > rear)
rear = t[i].end;
}
if (rear <= 1440)
ans += 1440-rear;
printf("%d\n",ans);
}
return 0;
}