风险人群筛查
题目背景
某地疫情爆发后,出于“应检尽检”的原则,我们想要通知所有近期经过该高危区域的居民参与核酸检测。
粘图片是因为太菜,部分字符打出来很影响美观,只能这样截图过来
样例输入
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
解析
本题的难点在于怎么去统计经过和逗留的问题。只要有一个点在里面就是经过,有连续k个则为逗留,注意是连续所有我们就需要有两个单独的标志,一个是统计逗留的一个是统计经过的。这样难点就变成了怎么统计逗留的问题
n,k,t,xl,yd,xr,yu = map(int,input().split())
cou1 = cou2 = 0 #最终经过,逗留的人数
for i in range(n):
li = list(map(int,input().split()))
count = fa = fa1 =0 #count统计连续几个点在高危区,fa标志着这个人是否经过,fa1标志着是否为逗留
for j in range(0,2*t,2):
if li[j]>=xl and li[j]<=xr and li[j+1]>=yd and li[j+1]<=yu:
fa =1
count +=1
if count>=k:
fa1=1
else:
count = 0
if fa == 1:
cou1 += 1
if fa1 == 1:
cou2 += 1
print(cou1)
print(cou2)