📅  最后修改于: 2023-12-03 15:12:45.652000             🧑  作者: Mango
本次测验是Sudo GATE 2021的第45章,是Sudo算法竞赛的一部分。该竞赛是为了提高程序员的算法和编程技能,同时也是一个很好的学习平台。测验主题是“门”,将要求参赛者设计一个程序,解决以下问题:
给定一个房间和若干个门的位置,找出距离给定点最近的门。
以下是具体的输入和输出要求:
输入:
输出:
以下是代码示例,帮助程序员快速理解问题要求和实现思路:
import math
n, q = map(int, input().split())
doors = []
for i in range(n):
x, y = map(int, input().split())
doors.append((x, y, i + 1))
for i in range(q):
x, y = map(int, input().split())
min_distance = float('inf')
min_idx = -1
for j in range(n):
d = math.sqrt((doors[j][0] - x)**2 + (doors[j][1] - y)**2)
if d < min_distance:
min_distance = d
min_idx = doors[j][2]
print(min_idx)
上述代码示例使用了 Python 语言,通过输入 n、q、门的坐标和问题的坐标,遍历所有门,计算距离最短的门的编号,并输出。在实际编程过程中,需要注意以下问题: