import java.io.IOException;
import java.util.Scanner;
import java.util.Vector;
public class Main {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
//第一行
String[] str = s.nextLine().split(" ");
//n个居民
int n=Integer.parseInt(str[0]);
//判断是否逗留还是经过的k个坐标
int k=Integer.parseInt(str[1]);
//居民总共的位置数量
int t=Integer.parseInt(str[2]);
//矩形四个角的坐标
int xl=Integer.parseInt(str[3]);
int yd=Integer.parseInt(str[4]);
int xr=Integer.parseInt(str[5]);
int yu=Integer.parseInt(str[6]);
//开始输入每个人的坐标
//直接用Vector保存吧,Vector里套Vector
Vector<Vector> local = new Vector<Vector>();
int index=0;
while (index!=n){
str = s.nextLine().split(" ");
Vector<Integer> temp = new Vector<Integer>();
for(String i:str){
temp.addElement(Integer.parseInt(i));
}
local.addElement(temp);
index++;
}
//ans1 是经过风险区域的 ans2 是逗留风险区域的
int ans1=0;
int ans2=0;
//xi yi
int xi=0;
int yi=0;
//这个向量存储所有经过的点的下标 判断是否连续
Vector<Integer> LocalIndex = new Vector<Integer>();
//开始对每个人进行遍历
for(Vector vec:local) {
for (int i = 0; i <= vec.size() - 2; i += 2) {
//xi yi 是否在[xl xr yd yu]范围内的判别方法是xl<=xi<xr && yd<yi<yu
xi = (int) vec.elementAt(i);
yi = (int) vec.elementAt(i + 1);
if (xl <= xi && xi <= xr && yd <= yi && yi <= yu) {
//记录一下现在的位置(i) 后面来判断是否连续经过
LocalIndex.add(i);
}
}
//这个时候取出LocalIndex的下标 找出里面的最大连续次数
if (!LocalIndex.isEmpty()) {
ans1++;
int count = 1;
for (int j = 0; j < LocalIndex.size()-1; j++) {
if (count >= k) {
ans2++;
count=0;
break;
}
if (2+ LocalIndex.elementAt(j) == LocalIndex.elementAt(j + 1)) {
count++;
} else count = 1;
}
if(count>=k) ans2++;
}
LocalIndex.removeAllElements();
}
System.out.println(ans1);
System.out.println(ans2);
}
}
CCF-CSP 202009-2风险人群筛查
最新推荐文章于 2024-03-28 18:04:04 发布