Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <cstdio>#include <fstream>#include <map>#include <vector>//#include <unordered_map>//#include <unordered_set>#include <stack>#include <set>#include <queue>#include <list>using namespace std;typedef long long LL;const int maxn=200005;int pre[maxn];int fi(int x){int i=x;while(pre[x]!=x) x=pre[x];while(i!=x){int t=pre[i];pre[i]=x;i=t;}return x;}int un(int x,int y)