- 将原数组 A 排序;
- 在排序后的数组中寻找长度为 M 的子段;
- 对每个子段,计算它的不和谐度;
- 所以只需找连续 M 个平方值中最大 - 最小最小的。
N, M = map(int, input().split())
A = list(map(int, input().split()))
A.sort()
min_L = float('inf')
for i in range(N - M + 1):
l = A[i]
r = A[i + M - 1]
L = r*r - l*l
if L < min_L:
min_L = L
print(min_L)

京公网安备 11010502036488号