没有标准答案,只是考完后先把题目记在这里,欢迎大佬们提点思路和秀程序。
第一题
思路:迭代n-1次找最近的点、距离数累加。
自己做的代码写得比较复杂,运算时长超时,就不贴出来了 ……
同学做的case通过100%,但毕竟复杂:
import sys
myInput = sys.stdin.readline().strip()
aList = list(map(int, myInput.split()))
n,a = aList[0],aList[1]
myInput = sys.stdin.readline().strip()
aList = list(map(int, myInput.split()))
aList.sort()
if n==1:
print(0)
elif a<=aList[0]:
print(aList[-2]-a)
elif a<=aList[1]:
turn_left = min((a-aList[0])*2,aList[-1]-aList[-2])+aList[1]-a+max(0,aList[-2]-aList[1])
turn_right = aList[-1]-a
print(min(turn_right,turn_left))
elif a>=aList[-1]:
print(a-aList[1])
elif a>=aList[-2]:
turn_right