CF237A Free Cash 题解

Content

给出 \(n\) 个二元组 \((x,y)\),求出现得最多的 \((x,y)\) 出现的次数,保证 \((x,y)\) 从小到大给出。

数据范围:\(1\leqslant n\leqslant 10^5,1\leqslant x\leqslant23,1\leqslant y\leqslant 59\)

Solution

这道题目其实直接按照原英文题面翻译的话是这样的:有一家 \(24\) 小时营业的咖啡店,一天一共进来了 \(n\) 个客人,已知第 \(i\) 个客人进来的时间是 \(x_i\)\(y_i\) 分,求进来的客人最多的时间。

其实这道题目如果没有保证(x,y)从小到大给出这个条件的话其实也可做的,就开个 \(vis\) 数组,记录\((x,y)\)出现的次数,那么答案就是 \(max\{vis_{x_i,y_i}\}(i\in[1,n])\)

Code

#include <cstdio>
#include <algorithm>
using namespace std;

int n, x, y, ans, vis[27][67];

int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) {
		scanf("%d%d", &x, &y);
		vis[x][y]++;
		ans = max(ans, vis[x][y]);
	}
	printf("%d", ans);
}
posted @ 2021-12-23 20:28  Eason_AC  阅读(35)  评论(0)    收藏  举报