CCF-CSP 201912-2 回收站选址(python实现)

风格不统一 提交于 2020-01-31 05:09:08

 题源来自---CCF计算机职业资格认证官网,点击报名入口,可进行模拟考试进行练习。代码在最后。


2019122-1

 

2019122-2

2019122-3

 

代码

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])

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!