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

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

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

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


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

Показать ответ
Ответ:
сим666
сим666
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-бота