func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<int> x_coord, y_coord;   vector<vector<int>> adj;   vector<bool> used;   int n;   void dfs(int v) {     used[v] = true;     for (auto u : adj[v]) {       if (!used[u]) {         used[u] = true;         dfs(u);       }     }   }   int main() {     scanf( %d , &n);     x_coord.resize(n);     y_coord.resize(n);     adj.resize(n);     for (int i = 0; i < n; i++) {       scanf( %d%d , &x_coord[i], &y_coord[i]);       for (int j = 0; j < i; j++) {         if (x_coord[j] == x_coord[i] || y_coord[j] == y_coord[i]) {           adj[i].push_back(j);           adj[j].push_back(i);         }       }     }     used.resize(n, false);     int cnt = 0;     for (int i = 0; i < n; i++) {       if (!used[i]) {         cnt++;         dfs(i);       }     }     printf( %d n , cnt - 1);     return 0;   }   