wgraphg; int d[3000][3000]; int z[3000]; int r; void f(int i,int p,int a){ rep(j,g.es[i]){ int v=g.edge[i][j]; if(v!=p){ int c=g.cost[i][j]; c=min(a,c); d[r][v]=c; f(v,i,c); } } } { int@n,@m,@(u,v)--[n-1],@(s,t)--[m],c[n-1]; rep(i,n-1)c[i]=i; g.setEdge(n,n-1,u,v,c); rep(r,n){ f(r,r,n); } rep(i,m){ z[d[s[i]][t[i]]-1]+=1; } rrep(i,n-1){ z[i]+=z[i+1]; } wtLn(z(n-1)); }