Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- city = list()
- for i in range(5):
- if i == 0:
- city.append([])
- else:
- city.append([0, False])
- # Путь между i и j = i + j
- # Сначала создаем массив из 4 элементов (0, False)
- # В возможных для проведения 1 меропрития городах заменяем флаг на True
- # flag означает, есть ли какой-либо путь от 1ого города до этого при n проведенных мероприятий
- # на n-ом проведении мероприятия смотрим, из какого города, в котором проводился предыдущий,
- # мы можем попасть в город проведения нынешнего. При том сохраняем только путь с минимальным значением времени
- # Так как остальные хранить нет смысла.
- n = int(input())
- a = list(map(int, input().split()))
- print(city)
- for k in a:
- city[k][1] = True
- print(city)
- for i in range(n - 1):
- a = list(map(int, input().split()))
- for k in a:
- for i in range(1, 5):
- if city[i][1]:
- if city[k][1] == False:
- city[k][0] = city[i][0] + (i + k)
- city[k][1] = True
- else:
- city[k][0] = min(city[k][0], city[i][0] + (i + k))
- for i in range(1, 5):
- if i not in a:
- city[i][0] = 0
- city[i][1] = False
- print(city)
- answer = -1
- for a, b in city:
- if b < answer or answer == -1:
- answer = b
- print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement