#include <stdio.h> int n, m, a[20005], b[20005], c[20005],f=0; void find(int city,int t) { int i; if (city == n) { if (t < 0) f = 1; return; } if (!f){ for (i = 0; i < m; i++) { if (a[i] == city) { city = b[i]; t += c[i]; find(city, t); t -= c[i]; city = a[i]; } } } return; } int main() { int i; while(scanf("%d%d", &n, &m),n-1<=m&&n>=2) { for (i = 0; i < m; i++) { scanf("%d%d%d", &a[i], &b[i], &c[i]); } f = 0; find(1,0); if (f == 0) printf("NO\n"); else printf("YES\n"); } return 0; } |
Double click to view unformatted code.