EduBrick

F. Флойд: существование

2000 мс · 256 МБ · всё или ничего

Дан ориентированный граф матрицей смежности, где 00 означает отсутствие ребра, а любое другое число — вес; вес может быть отрицательным. Для каждой пары вершин определите, существует ли кратчайший путь.

Ответов три:

  • 00 — пути нет вовсе;
  • 11 — кратчайший путь существует;
  • 22 — пути есть, но их вес можно сделать сколь угодно малым.

Третий случай — отрицательный цикл. Если из ii можно дойти до вершины cc, лежащей на цикле отрицательного веса, а из cc — до jj, то, наматывая цикл, вес пути опускается ниже любого числа.

Формат ввода

Первая строка содержит число nn (1≤n≤1001 \le n \le 100).

Далее идут nn строк по nn чисел — матрица смежности. Ноль означает отсутствие ребра, любое другое число — вес. Все числа по модулю не превосходят 100100.

Формат вывода

nn строк по nn чисел из множества {0,1,2}\{0, 1, 2\}.

Примеры

ввод
3
0 1 2
1 0 3
2 3 0
вывод
1 1 1
1 1 1
1 1 1
ввод
2
0 -1
-1 0
вывод
2 2
2 2
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.