CCF 202009-2风险人群筛查 (100分)

(1)题目描述

在这里插入图片描述

(2)算法思想

题目本身没有什么难以理解的地方,就是要注意一下逗留的定义——连续k个或更多坐标均位于矩形内(含边界),这就要求我们记录最大的连续位于矩阵内的次数,实现这一点就没有什么问题了。

(3)代码实现

#include<iostream>
using namespace std;
int xmin,ymin,xmax,ymax;

bool isin(int x, int y) {
	if(x>=xmin && x<=xmax && y>=ymin && y<=ymax)
		return true;
	return false;
}

int main() {
	int n,k,t;
	cin>>n>>k>>t;
	cin>>xmin>>ymin>>xmax>>ymax;
	int dwellnum=0;
	int passbynum=0;
	for(int i=0; i<n; i++) {
		int cnt=0;
		int MAXcnt=0;
		bool ispassby=false;
		for(int j=0; j<t; j++) {
			int x,y;
			cin>>x>>y;
			if(isin(x,y)) {
				cnt++;
				ispassby=true;
				if(cnt>MAXcnt)
					MAXcnt=cnt;
			} else
				cnt=0;
		}
		if(ispassby)
			passbynum++;
		if(MAXcnt>=k)
			dwellnum++;
	}
	cout<<passbynum<<endl<<dwellnum<<endl;
	return 0;
}
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页