Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне [ A , B ] и определяет номера двух элементов этого массива, которые расположены ближе всех друг к другу на числовой оси. Эти элементы не обязательно должны быть расположены рядом друг с другом. Если таких пар несколько, нужно вывести номера элементов самой последней из таких найденных пар. Входные данные Входная строка содержит три числа: границы диапазона случайных чисел A и B , а также размер массива N . Все числа разделены пробелами. Гарантируется, что 0 < N ≤ 10000 .
import random A, B, N = map(int, input().split()) array = [random.randint(A, B) for _ in range(N)] min_diff = float('inf') index1 = -1 index2 = -1 for i in range(N): for j in range(i+1, N): diff = abs(array[i] - array[j]) if diff < min_diff: min_diff = diff index1 = i index2 = j print(index1, index2)
Примеры входных данных:
10 20 7
Пример вывода:
4 6
Примеры входных данных:
-5 5 10
Пример вывода:
2 3
Примеры входных данных:
1 1 5
Пример вывода:
3 4
Примеры входных данных:
-10 10 8
Пример вывода:
0 2
Код решения на языке Python:
import randomA, B, N = map(int, input().split())
array = [random.randint(A, B) for _ in range(N)]
min_diff = float('inf')
index1 = -1
index2 = -1
for i in range(N):
for j in range(i+1, N):
diff = abs(array[i] - array[j])
if diff < min_diff:
min_diff = diff
index1 = i
index2 = j
print(index1, index2)