Как правильно обратиться к значению в массиве массивов?

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

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

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

введите сюда описание изображения

Не получается разделить массив на массив из 2-х значений, функция просто ничего не делит, подскажите как правильно обратиться к нужному мне элементу матрицы и прописать это в коде?

import operator
n = int(input())
array = [[0 for _ in range(n)] for _ in range(n)]
for i in range (1, n):
    array[i] = [int(i) for i in input().split()]
    array[i] += [0 for _ in range(n - len(array[i]))]
a = sorted(array, key=operator.itemgetter(0, 1))
def split(arr, count):
    return [arr[n::count] for n in range(count)]
print(split(a, 2))

UPDATE:

При входных данных как в примере выводит следующее:

[[[0, 0, 0, 0], [10, 0, 0, 0]], [[1, 1, 1, 0], [10, 10, 0, 0]]]

Ответы (1 шт):

Автор решения: Андр

Благодаря совету Эникейщика был получен рабочий вариант:

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)
→ Ссылка