fork download
  1. #include <bits/stdc++.h>
  2. #define nmax int(1e6+7)
  3. using namespace std;
  4. int n, m, par[nmax], sz[nmax];
  5. int find_set(int u){
  6. if(u==par[u]) return u;
  7. return par[u] = find_set(par[u]);
  8. }
  9. void union_sets(int u, int v){
  10. u = find_set(u);
  11. v = find_set(v);
  12. if(u==v) return ;
  13. if(sz[u] < sz[v]) swap(u, v);
  14. par[v] = u;
  15. }
  16. int main(){
  17. cin >> n >> m;
  18. for(int i=1; i<=n; i++)par[i] = i, sz[i] = 1;
  19. for(int i=1; i<=m; i++){
  20. int type; cin >> type;
  21. int u,v ;cin >> u >> v;
  22. if(type==1) union_sets(u, v);
  23. else{
  24. u = find_set(u);
  25. v = find_set(v);
  26. if(u==v) cout<<"1\n";
  27. else cout<<"0\n";
  28. }
  29. }
  30. return 0;
  31. }
  32. /*
  33.   Solve by: Truong Tuan Kiet - Informatics K36. Solve in 11h00 - 7/2/2025
  34. */
  35.  
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
Standard output is empty