Problem B:http://codeforces.com/contest/616/problem/B
B. Dinner with Emma
题意:一对夫妻要去餐厅吃晚饭,Emma 想去最豪华(贵)的地方吃,Jack想去最朴素(便宜)的地方吃,于是两人用这个方法决定去哪吃:每个街道和大道的交叉口上有一个餐厅,给出n街道m大道,所以每一条街道上有m个餐厅,由Emma选街道,由Jack选餐馆,(反正Jack会选择Emma选的街道中最便宜的一家)输出最终决定去的餐馆价格。
思路:既然Jack要选最小的但Emma想选大的,取决于Emma,所以找出每组中最小的,从最小的里面找出最大的。
#include<bits/stdc++.h> using namespace std; #define maxn 10005 int main(){ int t,i; cin >> t; while(t--){ int n,s = 0,hzx = 0; int a, b, c, d, e; int m[maxn], mm[maxn]; memset(m, 0, sizeof(m));//先初始化数组 memset(mm, 0, sizeof(mm)); cin >> n; for(i = 0;i < n; i ++){ scanf("%d %d:%d %d:%d",&a,&b,&c,&d,&e); m[b * 60 + c] += a; mm[d * 60 + e] += a; } for(i = 0;i < 60*24;i ++){ s += m[i]; s -= mm[i]; hzx = max(hzx,s);//这里是关键 } cout << hzx << endl; } return 0; }