1 dis[1]=0;
2 q.push(make_pair(0,1));
3 while(!q.empty())
4 {
5 int u=q.top().second;
6 q.pop();
7 if(vis[u]) continue;
8 vis[u]=1;
9 for(int i=h[u];i;i=e[i].nex)
10 {
11 int v=e[i].to;
12 if(dis[v]>dis[u]+e[i].w)
13 {
14 dis[v]=dis[u]+e[i].w;
15 q.push(make_pair(dis[v],v));
16 }
17 }
18 }
19