CCF- CSP 202009-2风险人群筛查 满分题解
题目链接:202009-2风险人群筛查
思路:
int
数据类型即可ans_pass
表示经过高危区域的人数,ans_wait
表示在高危区域逗留的人数x>=xl&&y>=yd&&x<=xr&&y<=yu
则认为该坐标位于高危区域内last
来记录last>0
说明,该人经过高危区域;如果last>=k
,该人在高危区域逗留过last>=k
,并不是有>k
个不同点位于高危区域内代码如下:
#include
#include
using namespace std;
int n,k,t,xl,yd,xr,yu;
int main()
{
cin>>n>>k>>t>>xl>>yd>>xr>>yu;
int ans_pass = 0;//经过高危区域的人数
int ans_wait = 0;//逗留高危区域的人数
while(n--)
{
int sum = 0;//辅助记录最大连续长度
int last = 0;//记录最大连续长度
for(int i=1;i<=t;i++)
{
int x,y;
cin>>x>>y;
//在高危区域内
if(x>=xl&&y>=yd&&x<=xr&&y<=yu)
{
sum++;
last = max(sum,last);//取最大长度
}
else
{
sum = 0;
}
}
//经过
if(last>0)
{
ans_pass++;
}
//逗留过
if(last>=k)
{
ans_wait++;
}
}
cout<<ans_pass<<endl<<ans_wait<<endl;
}