Skip to content

Instantly share code, notes, and snippets.

@reflechant
Created April 1, 2018 11:51
Show Gist options
  • Save reflechant/2395ad668404cab173e419a7fc7689a6 to your computer and use it in GitHub Desktop.
Save reflechant/2395ad668404cab173e419a7fc7689a6 to your computer and use it in GitHub Desktop.
import random
import operator
random.seed()
A, B, N = map(int, input().split())
# заполняем список случайными числами:
l = [random.randint(A, B) for i in range(N)]
# сортируем по неубыванию, возвращая список пар чисел (индекс, число)
m = sorted(enumerate(l), key=operator.itemgetter(1))
# создаём список дистанций между отсортированными числами
distances = [m[i + 1][1] - m[i][1] for i in range(len(m) - 1)]
# ищем минимальную дистанцию
dmin = min(distances)
# получаем список индексов, по которым располагаются минимальные дистанции
dmin_indexes = [i[0] for i in enumerate(distances) if i[1] == dmin]
# получаем список пар индексов чисел в исходном списке, которые образуют минимальную дистанцию
index_pairs = [(m[x][0], m[x + 1][0]) for x in dmin_indexes]
# ответ - это та пара, у которой правое число стоит правее всех
answer = max(index_pairs, key=operator.itemgetter(1))
print(*l, sep=" ")
print(answer[0] + 1, answer[1] + 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment