ZOJ1067
这道题对RGB的表述可以理解成三维坐标下求最短距离的,先输入16个点,再任意输入n个点(-1 -1 -1 表示结束)求与16个点中距离最短的点。
#2015-02-10
# -*- coding: utf-8 -*-
import math
ip1 = [[] for j in range(16)]
ip2 = [[]]
count = 0
while count < 16:
ip = raw_input()
ip1[count] = ip.split()
count += 1
ip = raw_input()
ip = ip.split()
count = 0
while int(ip[0])!=-1 and int(ip[1])!=-1 and int(ip[2])!=-1:
ip2.append(ip)
ip = raw_input()
ip = ip.split()
count += 1
key = 1
while key <= count:
flag = 10000000
j = 0
for i in range(16):
a = int(ip2[key][0])
b = int(ip2[key][1])
c = int(ip2[key][2])
a1 = int(ip1[i][0])
b1 = int(ip1[i][1])
c1 = int(ip1[i][2])
d = math.sqrt((a-a1)**2+(b-b1)**2+(c-c1)**2)
if d < flag:
flag = d
j = i
print '(%d,%d,%d) maps to (%d,%d,%d)' % (int(ip2[key][0]),int(ip2[key][1]),int(ip2[key][2]),int(ip1[j][0]),int(ip1[j][1]),int(ip1[j][2]))
key += 1
这里要用到sqrt()函数,需要先导入math。