@[geyiyang001](/user/753241)
```cpp
#include<bits/stdc++.h>
#define N 10005
using namespace std;
queue<int>q;
int cost[N],et[N],ans;
int n,id,ct,v;
vector<int>g[N];
int rudu[N];
void tuopu(){
for(int i=1;i<=n;i++){
if(rudu[i]==0){
q.push(i);
et[i]=cost[i];
}
}
while(!q.empty()){
int u=q.front();
q.pop();
for(int i=0;i<g[u].size();i++){
int v=g[u][i];
rudu[v]--;
et[v]=max(et[v],et[u]+cost[v]);
if(rudu[v]==0){
q.push(v);
}
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d %d",&id,&ct);
cost[id]=ct;
while(cin>>v&&v!=0){
g[id].push_back(v);
rudu[v]++;
}
}
tuopu();
for(int i=1;i<=n;i++){
ans=max(ans,et[i]);
}
printf("%d",ans);
return 0;
}
```
by jiadahao @ 2024-03-24 11:04:16
已A,谢谢
by ge_yiyang_001_DT @ 2024-03-24 12:17:48