VI ea,eb,ew; void add(ll a,ll b,ll w){ ea.push_back(a); eb.push_back(b); ew.push_back(w); } { ll@n,@m; rep(m){ ll@a,@b,@c,@x; x=x?0:n; add(a+n,b+x,c); add(b+n,a+x,c); add(a,b,c); add(b,a,c); } wgraphg; g.setDirectEdge(2n+1,ea.size(),ea.data(),eb.data(),ew.data()); vector r(2n+1); g.getDist(2n,r.data()); rep(i,1,n) wt(r[i]); }