HDU4509:湫湫系列故事——减肥记II

Problem Description
  虽然制定了减肥食谱,但是湫湫显然克制不住吃货的本能,根本没有按照食谱行动!
于是,结果显而易见…
  但是没有什么能难倒高智商美女湫湫的,她决定另寻对策——吃没关系,咱吃进去再运动运动消耗掉不就好了?
  湫湫在内心咆哮:“我真是天才啊~\(≧▽≦)/~”

  可是,大家要知道,过年回家多忙啊——帮忙家里做大扫除,看电影,看小说,高中同学聚餐,初中同学聚餐,小学同学聚餐,吃东西,睡觉,吃东西,睡觉,吃东西,睡觉……所以锻炼得抽着时间来。

  但是,湫湫实在太忙了,所以没时间去算一天有多少时间可以用于锻炼,现在她把每日行程告诉你,拜托你帮忙算算吧~

  皮埃斯:一天是24小时,每小时60分钟
 

Input
输入数据包括多组测试用例。
每组测试数据首先是一个整数n,表示当天有n件事要做。  
接下来n行,第i行是第i件事的开始时间和结束时间,时间格式为HH:MM。

[Technical Specification]
1. 1 <= n <= 500000
2. 00 <= HH <= 23
3. 00 <= MM <= 59
 

Output
请输出一个整数,即湫湫当天可以用于锻炼的时间(单位分钟)
 

Sample Input
   
   
   
   
1 15:36 18:40 4 01:35 10:36 04:54 22:36 10:18 18:40 11:47 17:53
 

Sample Output
   
   
   
   
1256 179
Hint
大量输入,建议用scanf读数据。
 


 

 

//大神们说用线段树,小菜我说,线段树什么的不会,暴力解决一切

 

#include <stdio.h>
#include <string.h>
int main()
{
    int t,n,a[1445];
    while(~scanf("%d",&n))
    {
        int s1,e1,s2,e2,i;
        t = 0;
        memset(a,1,sizeof(a));
        while(n--)
        {
            scanf("%d:%d %d:%d",&s1,&e1,&s2,&e2);
            int start,end;
            start = s1*60+e1;
            end = s2*60+e2;
            memset(a+start,0,(end-start)*sizeof(int));
        }
        for(i = 0;i<1440;i++)
        {
            if(a[i])
            t++;
        }
        printf("%d\n",t);
    }

    return 0;
}


 

你可能感兴趣的:(ACM,HDU,解题报告)