Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define NMax 1000001
- using namespace std;
- ifstream f("prieteni.in");
- ofstream g("prieteni.out");
- int p,x,y,n,k;
- int root[NMax],dim[NMax];
- int rad(int x)
- {
- while(root[x]!=x)
- x=root[x];
- return x;
- }
- int main()
- {
- f>>n>>k;
- for(int i=1;i<=n;++i)
- {
- root[i]=i;
- dim[i]=1;
- }
- int vf1,vf2;
- for(int i=1;i<=k;++i)
- {
- f>>p;
- if(p==1)
- {
- f>>x>>y,vf1=rad(x),vf2=rad(y);
- if(vf1!=vf2)
- {
- if(dim[vf1]>dim[vf2])
- dim[vf1]+=dim[vf2],root[vf2]=vf1;
- else
- dim[vf2]+=dim[vf1],root[vf1]=vf2;
- }
- }
- else
- f>>x,g<<dim[rad(x)]<<'\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement