#include #include #include #include #include #define INF 1000000000 #define N 1000000+10 using namespace std; typedef struct { int to; int w; int next; }node; node E[N]; node e[N]; int head[N],dis[N],visit[N],cnt; int list[N],len[N],tot; void ADD(int a,int b,int c) { E[++cnt].to=b; E[cnt].w=c; E[cnt].next=head[a]; head[a]=cnt; } void add(int a,int b,int c) { e[++tot].to=b; e[tot].w=c; e[tot].next=list[a]; list[a]=cnt; } void spfa(int s,int t) { queueQ; for(int i=0;iQ; Q.push(s); while(!Q.empty()) { int k=Q.front(); Q.pop(); visit[k]=0; for(int i=list[k];i;i=e[i].next) { int to=e[i].to; int w=e[i].w; if(len[k]+w