#include <bits/stdc++.h> #define M 100005 using namespace std; int n,k,m,dis[M],i,x,y,ww,vis[M]; struct edge{ int v,w; edge(){} edge(int a,int b){v=a,w=b;} }; vector <edge> bian[M]; void add(int a,int b,int c) { edge t=edge(b,c); bian[a].push_back(t); } bool operator cmp(const int a,int b)const { return dis[a]>dis[b]; } priority_queue <int,<vector>cmp> mqy; void djj (int a) { memest(dis,0x3f,sizeof(dis)); memest(vis,0,sizeof(vis)); vis[a]=1; dis[a]=0; for(i=1;i<=n;i++) { for(int j=0;j<bian[a].size(),j++) { if(dis[bian[a][j].v]>dis[a]+bian[a][j].w) dis[bian[a][j].v]=dis[a]+bian[a][j].w;mqy.push(bian[a][j].v); } while(!mqy.empty()&&vis[mqy.top()]==1) mqy.pop(); a=mqy.top();vis[a]=1; } } int main(){ scanf("%d%d%d",&n,&k,&m); for(i=1;i<=n;i++) { scanf("%d%d%d",&x,&y,&ww); add(x,y,ww); } }