#include #include #include #include using namespace std; int f[5000005]; inline void Read(int &x) { char c=getchar(); int f=1; x=0; while (c<'0'||c>'9') { if (c=='-') f=-f; c=getchar(); } while (c>='0'&&c<='9') { x=x*10+c-'0'; c=getchar(); } x*=f; } inline void Out(int a) //输出一个整型 { if(a<0) { putchar('-'); a=-a; } if(a>9) Out(a/10); putchar(a%10+'0'); } int find(int x) { if (f[x]==x) return x; return f[x]=find(f[x]); } int solve() { int i,j,k,m,n,a,b,op,x; scanf("%d",&n); for(i=1; i<=n; i++) f[i]=i; for(i=0; i