for(int i=head[x];i;i=e[i].next); { int y=e[i].to; if(dis[y]>dis[x]+e[i].dis) { dis[y]=dis[x]+e[i].dis; if(!vis[y]) { q.push((node){dis[y],y}); } } }