目录
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、Python算法源码
- 五、效果展示
- 1、输入
- 2、输出
- 3、说明
一、题目描述
为了解决新学期学生暴涨的问题,小乐村要建所新学校。考虑到学生上学安全问题,需要所有学生家到学校距离最短。假设学校和所有的学生家,走在一条直线上。请问,学校要建在什么位置,能使得学校到各个学生家的距离之和最短?
二、输入描述
输入的第一行是一个整数N(1<=N<=1000),表示有N户家庭。
输入的第二行是一个数组(0<= <=10000),表示每户家庭的位置,所有家庭的位置都不相同。
三、输出描述
输出一行,一个整数,表示你确定的学校位置。如有多个位置相同,则输出值最小的位置。
四、Python算法源码
import sys
n = int(sys.stdin.readline().strip())
houses = list(map(int, sys.stdin.readline().strip().split()))
houses.sort()
if n % 2 == 0:
print(houses[n // 2 - 1])
else:
print(houses[(n - 1) // 2])
五、效果展示
1、输入
6
0 10 20 30 40 50
2、输出
20
3、说明
20到各个家庭的距离分别为 20 10 0 10 20 30,总和为 90,最小。
有多个位置满足条件,但是20是最小的那个,所以输出20。
🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路
🏆本文收录于,华为OD机试(Python)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,发现新题目,随时更新,全天CSDN在线答疑。