https://www.luogu.com.cn/record/154412728
#include<bits/stdc++.h>
using namespace std;
struct edge{
int u,w;
};
vector<edge> E[50010];
int n,m,s,t,dis[50010];
bool vis[50010];
void spfa(int s){
for(int i=1;i<=n;i++) vis[i]=0;
queue<int> q;
q.push(s);
dis[s]=0,vis[s]=1;
while(!q.empty()){
int t=q.front();
q.pop();
vis[t]=0;
for(int i=0;i<E[t].size();i++){
int j=E[t][i].u,k=E[t][i].w;
if(dis[t]+k>dis[j]){
dis[j]=dis[t]+k;
if(!vis[j]){
vis[j]=1;
q.push(j);
}
}
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1,j,k,l;i<=m;i++){
scanf("%d%d%d",&j,&k,&l);
E[j].push_back({k,l});
}
spfa(1);
printf("%d\n",dis[n]);
}