有n处垃圾,在这n处建回收厂,且上下左右都有垃圾才能被选上。
为选上的地点评分,4个斜角,一个斜角有垃圾加一分。一共5种分值:0,1,2,3,4。最后得到一个分值,对应分值的个数加一,最后输出每个分值各有多少个选址。
2种方向:dires1 - 上下左右;dires2 - 4个斜角
2个评分:s1 - 上下左右的垃圾个数,4分才能被选;s2 - 4个斜角
流程:
遍历每个地点,评分s1,能选作回收站的接着评分s2。
python代码:
n = int(input())
points, cnts = [], [0, 0, 0, 0, 0]
dires1 = [[0, 1], [1, 0], [-1, 0], [0, -1]]
dires2 = [[-1, -1], [1, 1], [-1, 1], [1, -1]]
for i in range(n):
x, y = map(int, input().split())
points.append([x, y])
for x, y in points:
s1, s2 = 0, 0
for dx, dy in dires1:
nx, ny = x + dx, y + dy
if [nx, ny] in points:
s1 += 1
if s1 == 4:
for dx, dy in dires2:
nx, ny = x + dx, y + dy
if [nx, ny] in points:
s2 += 1
cnts[s2] += 1
for cnt in cnts:
print(cnt)
# 7
# 1 2
# 2 1
# 0 0
# 1 1
# 1 0
# 2 0
# 0 1
# 2
# 0 0
# -10000 10
# 11
# 9 10
# 10 10
# 11 10
# 12 10
# 13 10
# 11 9
# 11 8
# 12 9
# 10 9
# 10 11
# 12 11