EduBrick

F. Вершины на отрицательных циклах

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

Как классная задача F, но выводится одно число: сколько вершин лежит хотя бы на одном цикле отрицательного веса.

После обычного Флойда это ровно те вершины cc, у которых d[c][c]<0d[c][c] < 0: кратчайший путь из вершины в саму себя стал отрицательным, значит она лежит на отрицательном цикле.

Осторожно с бесконечностями: пары, до которых пути нет, участвовать в сложении не должны, иначе значения поедут и диагональ соврёт.

Полезное следствие: диагональ Флойда — самый дешёвый способ узнать про отрицательные циклы, если матрица и так строится. Форд — Беллман умеет то же и работает на разреженных графах, но это уже вторая часть занятий про кратчайшие пути.

Формат ввода

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

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

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

Одно число.

Примеры

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