首页 > 代码库 > BestCoder Round #2 1001 (简单处理)
BestCoder Round #2 1001 (简单处理)
题目链接
题意:给N条信息,每个信息代表有x个人从开始的时间 到 结束的时间在餐厅就餐,
问最少需要多少座位才能满足需要。
分析:由于时间只有24*60 所以把每个时间点放到 数组a中,并标记开始的时间+x,
结束的时间 -x。最后累加比较。
如果时间点太多的时候可以把时间点放到结构体里,排序,然后依次枚举结构体。
1 #include <iostream> 2 #include <cstring> 3 #include <cstdlib> 4 #include <cmath> 5 #include <cstdio> 6 #include <vector> 7 #include <algorithm> 8 #define LL long long 9 #define rep(i, a, b)for(int i = a; i < b; i++)10 const int maxn = 1500+10;11 12 using namespace std;13 int a[maxn];14 15 int main()16 {17 int t, n, x, h, m, ans;18 cin>>t;19 while(t--)20 {21 memset(a, 0, sizeof(a));22 cin>>n;23 while(n--)24 {25 scanf("%d %d:%d", &x, &h, &m);26 a[h*60+m] += x;27 scanf("%d:%d", &h, &m);28 a[h*60+m] -= x;29 }30 ans = 0;31 rep(i, 1, maxn-1)32 a[i] += a[i-1];33 rep(i, 0, maxn-1)34 if(a[i]>ans)35 ans = a[i];36 cout<<ans<<endl;37 }38 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。