Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <algorithm>#define N 100000#define M 1000000struct {int e,v,w;} edge[(M<<1)+1];int head[N] = {0}, num = 1;int heap[M], sz = 0;void conn(int u,int v,int w) {edge[num].e = head[u];edge[num].v = v;edge[num].w = w;head[u] = num++;}bool cmp(int a,int b) {return edge[a].w > edge[b].w;}int main() {int n,m,u,v,w,res = 0;scanf("%d%d\n",&n,&m);for(;m--;) {scanf("%d%d%d",&u,&v,&w);u--; v--; conn(u,v,w); conn(v,u,w);}v = --n;for(;n--;) {u = head[v]; head[v] = 0;for(; u; u = edge[u].e) {heap[sz++] = u;