- 样例1:
输入
5 2 6 20 40 100 80 100 80 100 80 100 80 100 80 100 80 100 80 60 50 60 46 60 42 60 38 60 34 60 30 10 60 14 62 18 66 22 74 26 86 30 100 90 31 94 35 98 39 102 43 106 47 110 51 0 20 4 20 8 20 12 20 16 20 20 20
输出
3 2
- 样例2
输入
1 3 8 0 0 10 10 -1 -1 0 0 0 0 -1 -1 0 0 -1 -1 0 0 0 0
输出
1 0题解
一开始感觉能直接写,先判断是否在区域范围内,对在范围内的点进行计数,若达到k值就计入停留数据
但是emmm……好像放到一起写不知道哪出错了没过……
先贴上记录一下再看看到底哪出的错……
(烦请大佬指正!)
n,k,t,xl,yd,xr,yu = map(int,input().split())
position = []
passby,stay = 0,0
for _ in range(n):
position=list(map(int,input().split()))
flag = -1
for i in range(0,2*t,2):
if xl<=position[i]<=xr and yd<=position[i+1]<=yu:
if flag == -1:
passby+=1
flag=1
elif flag >= k:
stay+=1
break
elif 0<=flag
多个判断进程的分开写比较靠谱一点,分一部分独立好找问题
def ispass(lis,xl,yd,xr,yu):
for i in range(0,len(lis),2):
if xl <= lis[i] <= xr and yd<=lis[i+1]<=yu:
return True
return False
def iswait(lis,xl,yd,xr,yu,k):
time_max,time = 0,0
for i in range(0,len(lis),2):
if xl<=lis[i]<=xr and yd<=lis[i+1]<=yu:
time+=1
if lis[i]xr or lis[i+1]yu:
time = 0
if time > time_max:
time_max = time
if time_max>=k:
return True
return False
n,k,t,xl,yd,xr,yu = map(int,input().split())
passby,stay = 0,0
for i in range(n):
lis=list(map(int,input().split()))
if ispass(lis,xl,yd,xr,yu):
passby+=1
if iswait(lis,xl,yd,xr,yu,k):
stay+=1
print(passby)
print(stay)


![[Python解CSP之路]风险人群筛查 [Python解CSP之路]风险人群筛查](http://www.mshxw.com/aiimages/31/950135.png)
