博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4883 TIANKENG’s restaurant(BestCoder Round #2)
阅读量:6206 次
发布时间:2019-06-21

本文共 2215 字,大约阅读时间需要 7 分钟。

Problem Description:
TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to have meal because of its delicious dishes. Today n groups of customers come to enjoy their meal, and there are Xi persons in the ith group in sum. Assuming that each customer can own only one chair. Now we know the arriving time STi and departure time EDi of each group. Could you help TIANKENG calculate the minimum chairs he needs to prepare so that every customer can take a seat when arriving the restaurant?
 
Input:
The first line contains a positive integer T(T<=100), standing for T test cases in all.
Each cases has a positive integer n(1<=n<=10000), which means n groups of customer. Then following n lines, each line there is a positive integer Xi(1<=Xi<=100), referring to the sum of the number of the ith group people, and the arriving time STi and departure time Edi(the time format is hh:mm, 0<=hh<24, 0<=mm<60), Given that the arriving time must be earlier than the departure time.
Pay attention that when a group of people arrive at the restaurant as soon as a group of people leaves from the restaurant, then the arriving group can be arranged to take their seats if the seats are enough.
 
Output:
For each test case, output the minimum number of chair that TIANKENG needs to prepare.
 
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
 
题意:餐馆每个时间段会来x个人,那么我们最少需要准备多少凳子(当一个时间段里餐馆人数最多时就是我们要求的最少凳子数)。
#include
#include
#include
#include
#include
#include
using namespace std;const int N=1e5+10;const int M=50000;const int INF=0x3f3f3f3f;int a[N];int main (){ int T, n, s1, e1, s2, e2, x, s, e, i, ans, Max; scanf("%d", &T); while (T--) { memset(a, 0, sizeof(a)); ans = 0; Max = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &x); scanf("%d:%d %d:%d", &s1, &s2, &e1, &e2); s = s1*60+s2+1; e = e1*60+e2+1; a[s] += x; a[e] -= x; } for (i = 0; i < N; i++) { ans += a[i]; Max = max(ans, Max); } printf("%d\n", Max); } return 0;}

转载于:https://www.cnblogs.com/syhandll/p/4897644.html

你可能感兴趣的文章
Windows下Apache+Tomcat+jsp+php的服务器整合配置经验总结
查看>>
我们为什么需要DTO?
查看>>
scp命令
查看>>
编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]...
查看>>
C++11-新增正则表达式
查看>>
MVC5中使用SignalR2.0实现实时聊天室
查看>>
用HiveDB横向切分MySQL数据库
查看>>
PHP自动分表程序
查看>>
sql server异地备份数据库
查看>>
NSIS:禁止多次安装实例
查看>>
.NET:不要使用扩展方法扩展Object对象。
查看>>
maven学习笔记
查看>>
UVa657 The die is cast
查看>>
mysql 调用外部程序
查看>>
我的第一个 Mono for Android 应用
查看>>
hadoop安装详解
查看>>
JavaScript学习总结(三)——逻辑And运算符详解
查看>>
python mysql 单引号字符串过滤
查看>>
Android中View绘制流程以及invalidate()等相关方法分析
查看>>
android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1(zz)
查看>>