Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <algorithm>#include <vector>#include <queue>using namespace std;int N, M;long long weigh[20004];int son[20004], Ecnt;int Deg[20004];struct edge{int next, link;} ed[200005];inline void Add(int u, int v){ed[++ Ecnt] = (edge){son[u], v};son[u] = Ecnt;}int dfn[40004], low[40004], dcnt;int id[40004];int Stk[40004], Scnt;bool instk[40004];vector<int> Edge[40004], From[40004];void Tarjan(int u, int p){dfn[u] = low[u] = ++dcnt;