QAQ
char dp[N][N]
for(int i=h[now];i;i=a[i].next) { int y=a[i].to; ... if(b[i]||spfa(y)) return 1; }
f=read(); if(f=='1') x=read(),y=read(),z=read(),build(x,y,z);
struct node{int num,dis;} queue<node> q; ... q.push(dis[v],v);