• Предмет: Информатика
  • Автор: allgamestudilp
  • Вопрос задан 6 лет назад

ПОМОГИТЕ!!!!!!!!

В ситуации эпидемии важна социальная дистанция. В музей одновременно прибыли несколько групп. Постройте график посещения залов музея для каждой группы так, чтобы ни одного не было пропущено, и при этом на одной точке одновременно не находилось больше одной группы. Считайте, что группы начинают осмотр одновременно, находясь в зале 1 минуту, время перемещения в минутах задано значениями длин рёбер. Допускается повторное посещение зала.




Карта музея одинаковая для всех тестов и представлена в виде графа, заданного числом вершин (от 1 до N) и набором рёбер (указывается также длина ребра — время пути между залами музея в минутах).


Для удобства мы приводим схематическую иллюстрацию карты и её текстовое представление. В тексте ниже первая строка — число вершин и рёбер; далее следуют номера соединяемых вершин и длина каждого ребра.


15 21

1 2 10

1 15 14

1 6 16

2 3 6

3 6 9

3 4 6

4 5 7

4 7 10

5 6 11

5 7 13

7 8 3

7 10 10

8 9 12

9 10 5

10 11 7

11 12 7

11 13 11

11 14 21

12 15 16

13 14 20

13 15 14

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


Sample Input:


1

Sample Output:


1 2 3 6 5 4 7 8 9 10 11 14 13 15 12

ДАЮ 50 Балов!!!!!

СРООООЧНООО!!!!!!

Приложения:

Ответы

Ответ дал: tvoyaapochka
1

kolver, kolrebra = 15, 21

rebra = [[1, 2, 10], [1, 15, 14], [1, 6, 16], [2, 3, 6], [3, 6, 9], [3, 4, 6], [4, 5, 7], [4, 7, 10], [5, 6, 11], [5, 7, 13], [7, 8, 3], [7, 10, 10], [8, 9, 12], [9, 10, 5], [10, 11, 7], [11, 12, 7], [11, 13, 11], [11, 14, 21], [12, 15, 16], [13, 14, 20], [13, 15, 14]]

print(rebra)

d = {str(a): [] for a in range(kolver+1)}

for item in rebra:

   d[str(item[0])].append(str(item[1]))

for item in rebra:

   d[str(item[1])].append(str(item[0]))

print(d)

graph = {'0': [], '1': ['2', '15', '6'], '2': ['3', '1'], '3': ['6', '4', '2'], '4': ['5', '7', '3'], '5': ['6', '7', '4'], '6': ['1', '3', '5'], '7': ['8', '10', '4', '5'], '8': ['9', '7'], '9': ['10', '8'], '10': ['11', '7', '9'], '11': ['12', '13', '14', '10'], '12': ['15', '11'], '13': ['14', '15', '11'], '14': ['11', '13'], '15': ['1', '12', '13']}

# visited is a set that is used to keep track of visited nodes.

visited = set()

listrezalt=[]

def dfs(visited, graph, node):

   if node not in visited:

       listrezalt.append(node)

       visited.add(node)

       #print("->",node)

       minvert=100

       vert = None

       for neighbor in graph[node]:

           #print(len(graph[neighbor]))

           if len(graph[neighbor]) !=None and (len(graph[neighbor]))<minvert and (neighbor not in visited):

               minvert = len(graph[neighbor])

               vert = neighbor

       if vert!=None:

           dfs(visited, graph, vert)

dfs(visited, graph, "10")

print(listrezalt)


allgamestudilp: неправильно
Вас заинтересует