В поселке функционируют три средние школы №1, №2 и №3. Администрация поселка выделила по k дачных участков для каждой школы. Участки расположены в ряд вдоль автотрассы и нумерованы от 1 до n (n = 3k). Учителя школы №1 уже выбрали себе участки, теперь предстоит распределить участки между учителями школы №2 таким образом, чтобы выбранные k участков имели наименьшую протяженность. (Выбирать участки подряд мешает выбор, сделанный учителями школы №1) Мерой протяженности для выбранных участков является число участков, находящихся между крайними участками (из выбранных участков). Например, если выбраны пять участков с номерами 3, 4, 8, 12, 14, то протяженность этих участков равна 14 – 3 – 1 = 10. Требуется написать программу, которая сделала бы правильный выбор участков для учителей школы №2.
Входные данные: Входной файл состоит двух строк; в первой - одно натуральное число: k – число участков, выделенных для каждой школы; 1  k  999999. Во второй строке - номера участков, выделенных для учителей школы №1. Выходные данные: Выходной файл состоит из k 4 натуральных чисел – номеров участков для учителей школы №2.
Формат ввода
6
1 4 7 12 15 17
Формат вывода
8 9 10 11 13 14

11 Сен 2019 в 23:46
247 +1
1
Ответы
1
# Считываем входные данные
k = int(input())
selected = list(map(int, input().split()))
# Находим наименьшую разницу между участками учителей школы №1
selected.sort()
min_diff = float('inf')
for i in range(1, len(selected)):
diff = selected[i] - selected[i-1] - 1
if diff < min_diff:
min_diff = diff
# Распределяем участки для учителей школы №2
result = []
current = selected[-1] + min_diff
for i in range(k):
result.append(current)
current += 1
# Выводим результат
print(' '.join(map(str, result)))
20 Апр 2024 в 01:35
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир