悬关
#include <bits/stdc++.h>
using namespace std;
int n,m,u,v,w,ans,dis[1505];
vector<pair<int,int> > g[1505];
void bfs(){
priority_queue<pair<int,int> > q;
memset(dis,-1,sizeof(dis));
q.push(make_pair(0,1));
dis[1]=-1;
while(q.size()){
int now=q.top().second,w=q.top().first;q.pop();
if(dis[now]!=-1)continue;
dis[now]=w;
for(int i=0;i<g[now].size();i++){
int v=g[now][i].first,y=g[now][i].second;
q.push(make_pair(dis[now]+v,y));
}
}
cout<<dis[n];
}
int main() {
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
g[u].push_back(make_pair(w,v));
}
bfs();
return 0;
}