voidxhl() { for (int i = 1; i <= n; i++) { if (ent[i] == 0) { q.push(i); ans[i] = len[i]; } } while (q.size()) { int tp = q.front(); q.pop(); for (int i = hd[tp]; i; i = nxt[i]) { int x = to[i]; ent[x]--; ans[x] = Max(ans[x], ans[tp] + len[x]); if (ent[x] == 0) { q.push(x); } } } }
intmain() { cin >> n; for (int i = 1; i <= n; i++) { int id; cin >> id >> len[i]; int ver; while (cin >> ver, ver) { add(i, ver); } } xhl(); for (int i = 1; i <= n; i++) { res = Max(res, ans[i]); } cout << res << endl; }
近期评论