时间限制 1000 ms 内存限制 65536 KB
题目描述
给出两个时间(24小时制),求第一个时间至少要经过多久才能到达第二个时间。给出的时间一定满足的形式,其中x和y分别代表小时和分钟。0≤x<24,0≤y<60。
输入格式
第一行为数据组数T(1≤T≤50000)。
每组数据包括两行,分别代表两个时间
输出格式
每组数据输出一行,表示最少经过的分钟数。
输入样例
2
7:00
7:00
7:00
8:00
输出样例
0
60
#include <stdio.h> #define DEBUG #define DEBUG_IN main() { unsigned int T = 0; int minute1 = 0, minute2 = 0, hour1 = 0, hour2 = 0; int deta; #ifdef DEBUG_IN if(freopen("OJ89.txt","r",stdin) == NULL) printf("error "); #endif scanf("%d",&T); //cin>>T; while(T--) { //cin>>hour1>>c1>>minute1>>hour2>>c1>>minute2; scanf("%d:%d",&hour1,&minute1); scanf("%d:%d",&hour2,&minute2); deta = (hour2 - hour1)*60 + (minute2 - minute1); printf("%d ",deta+ 1440*(deta < 0)); //cout<<(deta+ 1440*(deta < 0)) <<endl; } #ifdef DEBUG_IN fclose(stdin); freopen("CON","r",stdin); #endif return 0; }
总结:
题很简单,注意deta+ 1440*(deta < 0)就行
但是!
数据量比较大,“第一行为数据组数T(1≤T≤50000)” //一开始倒是注意到了,只想到T用unsigned,这点还是进步啦
于是用C++怎么写都超时。。。给跪了折腾了半天,以为逻辑不对,真是太不自信了。