Вопрос Python 3университетская команда

Регистрация
15 Май 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Университетская команда



Ограничение по времени: 1 секунда

Ограничение по памяти: 256 мегабайт

Ваш университет вовсю готовится к новому сезону командных олимпиад. Как несложно догадаться, для этого необходимо собрать команду, которая будет представлять учебное заведение.

Всего в университете учатся n студентов, i-й из них имеет силу ai. Для участия в олимпиадах необходимо выбрать ровно k людей и расположить их в каком‑то порядке. Пусть были выбраны студенты с номерами i1, i2, ... , ik (именно в таком порядке). Тогда слабость команды равна |ai2−ai1|+ |ai3−ai2|+ ...+|aik−aik−1|. Иначе говоря, слабость команды равна сумме модулей разностей сил соседних участников команды, если их расположить в выбранном порядке. Обратите внимание, что порядок студентов вы выбираете сами.

Администрация университета просит вас определить минимально возможную слабость команды.

Формат входных данных



Первая строка содержит одно целое число n (1⩽n⩽100 000) — количество студентов, обучающихся в университете.

Вторая строка содержит одно целое число k (1⩽k⩽n) — количество людей в составе команды.

Каждая из следующих n строк содержит целое число ai (1⩽ai⩽109) — силу i-го студента.

Формат выходных данных



Выведите одно целое число — минимально возможную слабость команды.

Система оценки



Решения, правильно работающие при n⩽10, будут оцениваться в 25 баллов.

Решения, правильно работающие при n⩽1000, будут оцениваться в 50 баллов.

Решения, правильно работающие при ai⩽100 000, будут оцениваться в 50 баллов.

Замечание



Рассмотрим пример. Если взять студентов с номерами 1, 5 и 4 (именно в таком порядке), то слабость команды будет равна |1−1|+|2−1|=0+1=1. Можно доказать, что меньшую слабость получить не получится.
 
Ответы на всю олимпиаду нашел в tg@olimpiadavsosh
 
n = int(input())
k = int(input())
a = sorted([int(input()) for i in range(n)])
ans = a[k-1] - a[0]
for i in range(1, n-k+1):
ans = min(ans, a[i+k-1] - a)
print(ans)
 
Назад
Сверху