参考文章
https://blog.csdn.net/weixin_45493055/article/details/108956399
题目描述
巧妙的点
- 用 "count++ … if(count==k)… else count=0"实现判断是否是连续k个的功能
- 逐个输入每个人的数据来判断类别,代替了多维数组,减少了空间和时间
代码实现
// 2020.9 2
#include<iostream>
using namespace std;
int n,k,t,x1,y1,x2,y2; // 输入的7个数
int main()
{
int x,y,count=0,cnt1=0,cnt2=0;
bool flag1=false,flag2=false;
cin>>n>>k>>t>>x1>>y1>>x2>>y2;
for(int i=0;i<n;i++){ // n个人
for(int j=0;j<t;j++){ // t个位置
cin>>x>>y;
// 测量连续的情况
if(x>=x1 && x<=x2 && y>=y1 && y<=y2){
count++; // 只要进入就累加
if(count==k){
flag2=true; // "逗留"
count=0;
//break; // 去除!因为2t个数据要输入完全
}
flag1=true; // 只要进入就是"经过"
}
else count=0; // 只要不是,就清0
}
// 判断i的性质
if(flag1) {
cnt1++;
flag1 = false; // "清零"
}
if(flag2){ // "清零"
cnt2++;
flag2 = false;
}
}
cout<<cnt1<<endl<<cnt2<<endl;
return 0;
}