详情键代码:
#include<bits/stdc++.h>
using namespace std;
vector<int>ve[1501];
int rd[50001]={0},maxx=INT_MIN,flag=0;
void dfs(int x,int t,int mb){
t+=rd[x];
if(x==mb){
maxx=max(t,maxx);
flag=1;
return;
}
for(auto to:ve[x]){
dfs(to,t,mb);
}
return;
}
int main(){
int m,u,v,t,n;
cin>>n>>m;
if(m==0){cout<<-1<<endl;return 0;}
for(int i=1;i<=m;i++){
cin>>u>>v>>t;
ve[u].push_back(v);
rd[i]=t;
}
dfs(1,0,n);
if(flag==1) cout<<maxx<<endl;
else cout<<-1<<endl;
}