题源来自---CCF计算机职业资格认证官网,点击报名入口,可进行模拟考试进行练习。代码在最后。
代码
n=int(input()) #输入的存垃圾地点数 a=[0]*n #输入的垃圾地点的横坐标 b=[0]*n #输入的垃圾地点的纵坐标 t=0 #记录某点上下左右邻居位置是否存在垃圾 num=[0]*5 #记录满足条件的地方其四个对角的得分 #输入 for i in range(n): a[i],b[i]=map(int,input().split()) #两层循环,对于每个坐标循环判断其上下左右是否存在。 #若存在,则判断其对角种几处有垃圾,把相应的值用num数组记录 for o in range(n): t = 0 hx=a[o] #上的横坐标 hy=b[o]+1 #上的纵坐标 rx=a[o]+1 ry=b[o] bx=a[o] by=b[o]-1 lx=a[o]-1 ly=b[o] ci=0 for i in range(n): if (a[i]==hx and b[i]==hy )or (a[i]==rx and b[i]==ry) or (a[i]==bx and b[i]==by) or (a[i]==lx and b[i]==ly): t=t+1 k=0 if t==4: #四个对角位置的横纵坐标 lhx = a[o] - 1 lhy = b[o] + 1 rhx = a[o] + 1 rhy = b[o] + 1 rbx = a[o] + 1 rby = b[o] - 1 lbx = a[o] - 1 lby = b[o] - 1 for i in range(n): if (a[i] == lhx and b[i] == lhy) or (a[i] == rhx and b[i] == rhy) or (a[i] == lbx and b[i] == lby) or ( a[i] == rbx and b[i] == rby): k = k + 1 num[k]+=1 #输出 for j in range(5): print(num[j])
来源:CSDN
作者:Shahare
链接:https://blog.csdn.net/Shahare/article/details/104114006