EduBrick

D. Есть ли отрицательный цикл

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

Граф задан матрицей смежности; значение 10510^5 означает отсутствие ребра. Определите, есть ли в графе цикл отрицательного веса.

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

Если на nn-й фазе хоть что-то улучшилось, отрицательный цикл есть. Обоснование: без отрицательного цикла любое расстояние достигается путём не более чем из n−1n - 1 рёбер, и после n−1n-1 фаз улучшать нечего.

Обратите внимание, что nn фаз, а не n−1n-1: последняя фаза — это и есть проверка.

Петля отрицательного веса — тоже отрицательный цикл, и алгоритм её ловит без особых оговорок.

Формат ввода

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

Далее идут nn строк по nn чисел — матрица смежности. Веса по модулю меньше 10510^5; значение ровно 10510^5 означает отсутствие ребра.

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

Одно слово: YES или NO.

Примеры

ввод
3
100000 100000 -51
100 100000 100000
100000 -50 100000
вывод
YES
ввод
2
100000 100000
100000 100000
вывод
NO
Войдите, чтобы отправлять решения.