Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # F
- def main():
- arr_of_pairs = []
- quantity_of_cities = int(input())
- arr_weights = [[int(num) for num in input().split()[:i]] for i in range(quantity_of_cities)]
- i_of_max, j_of_max = -1, -1
- arr_of_friends = [[] for i in range(quantity_of_cities)]
- for k in range(quantity_of_cities - 1):
- max_temp = -1
- for j in range(quantity_of_cities):
- for i in range(quantity_of_cities - 1, j, -1):
- if max_temp < arr_weights[i][j] and arr_of_friends[j].count(i) == 0:
- max_temp = arr_weights[i][j]
- i_of_max, j_of_max = i, j
- arr_weights[i_of_max][j_of_max] = -1
- if arr_weights[i_of_max].count(-1) > 1:
- arr_weights[i_of_max] = [-1 for j in range(i_of_max)]
- if [arr_weights[i][j_of_max] for i in range(quantity_of_cities - 1, j_of_max, -1)].count(-1) > 1:
- for i in range(quantity_of_cities - 1, j_of_max, -1):
- arr_weights[i][j_of_max] = -1
- for el in arr_of_friends[i_of_max]:
- if arr_of_friends[j_of_max].count(el) < 1:
- arr_of_friends[j_of_max].append(el)
- for el in arr_of_friends[j_of_max]:
- if arr_of_friends[i_of_max].count(el) < 1:
- arr_of_friends[i_of_max].append(el)
- if arr_of_friends[i_of_max].count(j_of_max) < 1:
- arr_of_friends[i_of_max].append(j_of_max)
- if arr_of_friends[j_of_max].count(i_of_max) < 1:
- arr_of_friends[j_of_max].append(i_of_max)
- for friend in arr_of_friends[j_of_max]:
- for el in arr_of_friends[j_of_max]:
- if arr_of_friends[friend].count(el) < 1:
- arr_of_friends[friend].append(el)
- arr_of_pairs.append([i_of_max + 1, j_of_max + 1])
- arr_way = [arr_of_pairs[0][0], arr_of_pairs[0][1]]
- for k in range(quantity_of_cities):
- for i in range(1, len(arr_of_pairs)):
- if arr_of_pairs[i][0] == arr_way[-1]:
- arr_way.append(arr_of_pairs[i][1])
- arr_of_pairs[i] = [-1, -1]
- elif arr_of_pairs[i][1] == arr_way[-1]:
- arr_way.append(arr_of_pairs[i][0])
- arr_of_pairs[i] = [-1, -1]
- elif arr_of_pairs[i][1] == arr_way[0]:
- arr_way.insert(0, arr_of_pairs[i][0])
- arr_of_pairs[i] = [-1, -1]
- elif arr_of_pairs[i][0] == arr_way[0]:
- arr_way.insert(0, arr_of_pairs[i][1])
- arr_of_pairs[i] = [-1, -1]
- str_out = ""
- for el in arr_way:
- str_out += str(el) + " "
- print(str_out[str_out.index("1"):] + str_out[:str_out.index("1")])
- if __name__ == '__main__':
- main()
- """
- 5
- 1 5 2 4
- 1 3 10 7
- 5 3 6 9
- 2 10 6 8
- 4 7 9 8
- 4
- 3 5 6
- 3 1 2
- 5 1 7
- 6 2 7
- """
Add Comment
Please, Sign In to add comment