codeforces240E:
感谢博主https://www.cnblogs.com/zsben991126/p/9809730.html
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#define ll long long
using namespace std;
const int maxn=2001005;
const int inf=1000000005;
struct Edge
{
int u,v,cost,id;
int w;
} e[maxn];
struct Cancel
{
int pre,id;
} cancel[maxn];
int vis[maxn],pre[maxn],id[maxn],in[maxn];
int useE[maxn],preid[maxn];
void addedge(int u,int v,int w,int id)
{
e[id].u=u;
e[id].v=v;
e[id].id=id;
e[id].cost=e[id].w=w;
}
int Directed_MST(int root,int Nv,int Ne)
{
int ret=0