#include<bits/stdc++.h> #define inf 1<<30 using namespace std; struct Edge{ int nex,to,w; }edge[1000000]; int cnt; int n; inline void add(int u,int v,int w){ edge[cnt].to=v; edge[cnt].w=w; edge[cnt].nex=head[u]; head[u]=cnt++; } int dis[10000000]; void spfa(int s){ queue<int>q; bool vis[100000]; memset(vis,0,sizeof vis); vis[s]=1; dis[s]=0; q.push(s); while(!q.empty()){ int f=q.front(); q.pop(); vis[f]=0; for(int i=head[f];~i;i=edge[i].nex){ int v=edge[i].to; if(dis[v]>dis[f]+edge[i].w){ dis[v]=dis[f]+edge[i].w; if(!vis[v]){ vis[v]=1; q.push(v); } } } } } int main() { return 0; }