Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <cstdio>#include <queue>#include <cstring>#define Maxn 2000000using namespace std;int fir[Maxn],nex[Maxn],dis[Maxn],to[Maxn],c[Maxn];bool inq[Maxn];queue<int> q;int tot,n,m,s,t;void addedge(int x,int y,int z){to[++tot]=y;c[tot]=z;nex[tot]=fir[x];fir[x]=tot;}void add(int x,int y,int z) {addedge(x,y,z);addedge(y,x,z);}int spfa() {dis[s]=0;q.push(s); inq[s]=1;while (!q.empty()){int x=q.front();q.pop(), inq[x]=0;for (int u=fir[x]; u; u=nex[u]){int v=to[u];