Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int n,t[32005],m,mx=999999;
- int rad(int nod)
- {
- while(t[nod]>0)
- nod=t[nod];
- return nod;
- }
- int main()
- {
- cin>>n>>m;
- for(int i=1; i<=n; i++)
- t[i]=-1;
- for(;m;m--)
- {
- int x,y,z;
- cin>>x;
- if(x==1)
- {
- cin>>y>>z;
- int xx=rad(y), yy=rad(z);
- if(xx!=yy){
- if(t[xx]>t[yy])
- {
- t[yy]+=t[xx] ;
- t[xx]=yy;
- } else
- {
- t[xx]+=t[yy] ;
- t[yy]=xx;
- }
- mx=min(t[xx],mx);
- mx=min(t[yy],mx);
- }
- }
- else if(x==2)
- {
- cin>>y>>z;
- int xx=rad(y), yy=rad(z);
- if(xx==yy)
- cout<<"DA"<<"\n";
- else
- cout<<"NU"<<"\n";
- }
- else
- {
- cout<<mx*(-1)<<"\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement