3 条题解

  • 1
    @ 2024-5-15 11:28:28
    n,d=map(int,input().split())
    #print(n,d)
    p=[]
    flag=True
    for i in range(n):
       x,y=map(int,input().split())
       if abs(y)>d:
           flag=False
           break
       p.append([x-(d*d-y*y)**0.5,x+(d*d-y*y)**0.5])
    if flag:
    #    print('ok')
        for i in range(n-1):
            for j in range(i,n-1):
                if p[j][0]>p[j+1][0]:
                    p[j+1],p[j]=p[j],p[j+1]
        tmp=p[0][1]
        ans=1
        for i in range(1,n):
            if p[i][0]>tmp:
                ans+=1
                tmp=p[i][1]
        print(ans)
    else:
        print("无法覆盖")
    

    信息

    ID
    928
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    131
    已通过
    21
    上传者