Module: الگوریتم فلوید


Problem

6 /10


چرخه منفی

Theory Click to read/hide

از آنجایی که الگوریتم فلوید به طور متوالی فواصل بین همه جفت رئوس (i, j)، از جمله آنهایی که دارای i=j هستند را شل می کند و فاصله اولیه بین یک جفت رئوس (i, i) برابر با صفر است، پس آرامش فقط می تواند رخ دهد. اگر راس k به گونه ای باشد که d[i][k]+d[k][i]<0، که معادل داشتن یک چرخه منفی در راس i است.

Problem

یک نمودار جهت دار داده می شود. تعیین کنید که آیا چرخه وزنی منفی دارد.

ورودی
خط اول شامل عدد N (1 <= N <= 100) – تعداد رئوس نمودار N سطر بعدی هر کدام N عدد دارد – ماتریس مجاورت گراف مدول وزن لبه کمتر از 100000. اگر لبه وجود نداشته باشد، مقدار مربوطه 100000 است.
 
خروجی
در خط اول در صورت وجود چرخه "YES" یا در غیر این صورت "NO" چاپ کنید. 

نمونه‌ها <سر> <بدن>
# ورودی خروجی
1
3
100000 100000 -51
100  100000 100000
100000 -50  100000
بله