В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Влад200619
Влад200619
02.11.2021 07:58 •  Информатика

Где экономия? Пусть вновь имеются N станций и таблица цен на проезд между ними. Требуется найти все такие пары станций, для которых дешевле проехать от одной до другой с одной пересадкой через какую-то третью станцию, чем напрямую.

Формат ввода
На первой строке вводится натуральное число N — количество станций.
Далее следует N-1 строка, составляющая половину таблицы цен, как в предыдущих задачах на эту тему.

Формат вывода
Выводится список пар номеров станций, удовлетворяющих условию (каждая пара — через пробел). Пары должны быть отсортированы по возрастанию по первому номеру, затем — по второму, и пары не должны повторяться, в том числе с изменённым порядком номеров в паре.


Где экономия? Пусть вновь имеются N станций и таблица цен на проезд между ними. Требуется найти все

Показать ответ
Ответ:
akolosov2002
akolosov2002
04.02.2021 19:29

n = int(input())

s = [[]] + [list(map(int, input().split())) for _ in range(n - 1)]

for a in range(0, n - 1):

   for a1 in range(a + 1, n):

       g = s[max(a, a1)][min(a, a1)]

       b = -1

       for i in range(n):

           if i != a and i != a1:

               l_new = s[max(i, a)][min(i, a)] + s[max(i, a1)][min(i, a1)]

               g, b = (l_new, i) if (g > l_new) else (g, b)

       if b != -1:

           print(a, a1)

Объяснение:

у меня приняли))

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота