ZCMU—1478

1478: 天坑的餐馆

Time Limit: 1 Sec  Memory Limit: 128 MB
[Submit][Status][Web Board]

Description

天坑毕业后开了一家餐馆,每天都有很多人来吃饭。已知今天共有n组客人来吃饭,第i组一共有Xi位客人,到达的时间为STi,离开的时间为EDi。一位客人坐一张凳子。你能告诉天坑他最少需要准备多少张凳子才能满足所有客人到达时都有凳子坐。

Input

测试文件的第一行有一个正整数T,代表一共有T组测试数据。
每组测试数据的第一行有1个正整数n(1<=n<=1000)代表今天一共有n组客人来吃饭。 
接下来n行,每行有一个正整数Xi(1<=Xi<=100)代表该组客人一共有Xi位客人以及两个时间(hh:mm表示,0<=hh<24,0<=mm<60,第一个时间一定不晚于第二个时间)分别代表该组客人到达的时间和离开的时间。

Output

对于每组测试数据,输出一个答案代表天坑最少需要准备的凳子数。

Sample Input

2
2
6 08:00 09:00
5 08:59 09:59
2
6 08:00 09:00
5 09:00 10:00

Sample Output

11
6

【分析】

其实主要就是对时间的一个处理了....其实时间可以直接表示成一个四位数比如  08:00=800   0959=959   14:23=1423
然后就会发现就算标记每个时间点也才0-2400,所以~直接算就好了....
【代码】
#include <stdio.h>
#include <string.h>
int f[10000];
int main()
{
	int pp;scanf("%d",&pp);
	while (pp--)
	{
		memset(f,0,sizeof(f));
		int n;scanf("%d",&n);
		for (int i=0;i<n;i++)
		{
			int q,x,y;scanf("%d %d:%d",&q,&x,&y);
			int t=x*100+y;
			f[t]-=q;
			scanf("%d:%d",&x,&y);
			t=x*100+y;
			f[t]+=q;
		}
		int now=0;
		int ans=0;
		for (int i=0;i<=2400;i++)
		{
			now+=f[i];
			if (now<0) ans-=now,now=0;
		}
		printf("%d\n",ans);
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值