在codechef中,为什么我的python代码会给出NZEC错误:

2024-06-18 13:33:39 发布

您现在位置:Python中文网/ 问答频道 /正文

输入

输入的第一行包含一个整数T

表示测试用例的数量。T的描述 测试用例如下

每个测试用例的第一行包含两个空格分隔的整数x和y

第二行包含三个空格分隔的整数N 、M和K

第三行包含2N 空格分隔整数a1,b1,a2,b2,…,aN,bN

第四行包含2M 空格分隔整数c1,d1,c2,d2,…,cM,dM

第五行包含2K 空格分隔整数e1,f1,e2,f2,…,eK,fK

输出

对于每个测试用例,打印一行包含一个实数的最小距离

如果您的答案的绝对或相对误差不超过10^-6,则认为您的答案是正确的。 .

import math
T=int(input())
for _ in range(T):
  x,y=map(int,raw_input().split())
  n,m,k=map(int,raw_input().split())
  nr=list(map(int,input().split()))
  mr=list(map(int,input().split()))
  kr=list(map(int,input().split()))
  ar=[x]+[y]
  p,q=[],[]
  for i in range(0,n*2,2):
    for j in range(0,k*2,2):
      p.append(math.sqrt((nr[i]-kr[j])**2+(nr[i+1]-kr[j+1])**2))
  for i in range(0,m*2,2):
    for j in range(0,k*2,2):
      q.append(math.sqrt((mr[i]-kr[j])**2+(mr[i+1]-kr[j+1])**2))
  h=10000000000.00
  for i in range(0,m*2,2):
    d=math.sqrt((ar[0]-mr[i])**2+(ar[1]-mr[i+1])**2)
    for j in range(0,n*2,2):
      d1=math.sqrt((mr[i]-nr[j])**2+(mr[i+1]-nr[j+1])**2)
      c=min(p[j]+d+d1,p[j+1]+d+d1)
      if c < h:
        X=c
  g=10000000000.00
  for i in range(0,n*2,2):
    d=math.sqrt((ar[0]-nr[i])**2+(ar[1]-nr[i+1])**2)
    for j in range(0,m*2,2):
      g=math.sqrt((nr[i]-mr[j])**2+(nr[i+1]-mr[j+1])**2)
      c=min(q[j]+d+d1,q[j+1]+d+d1)
      if c < g:
        g=c
  result=min(h,g)
  print(result)

Tags: inmapforinputrange整数mathsqrt