您的位置:首页 > 其它

ZCMU—1478

2016-12-09 12:30 155 查看

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