voidjoin(int x, int y, int w){ int a = find(x), b = find(y); fa[a] = b; dis[a] = dis[y] + w - dis[x]; }
voidwork(){ bool flag = true; int x, y, w; cin >> n >> m; for (int i = 0; i <= n; ++i) fa[i] = i, dis[i] = 0; while (m--) { cin >> x >> y >> w; --x; if (find(x) != find(y)) { join(x, y, w); } else { if (dis[x] - dis[y] != w) { flag = false; } } } flag ? puts("true") : puts("false"); }
intmain(){ int t; cin >> t; while (t--) work(); return0; }