func_code_string: #include <bits/stdc++.h>   using namespace std;   int arr[105][3];   vector<int> vec[105];   bool vis[105];   void dfs(int i) {     vis[i] = true;     for (int j = 0; j < vec[i].size(); j++) {       if (!vis[vec[i][j]]) dfs(vec[i][j]);     }     return;   }   int main() {     int n, i, cnt = 0, j;     cin >> n;     for (i = 1; i <= n; i++) {       scanf( %d%d , &arr[i][0], &arr[i][1]);     }     for (i = 1; i <= n; i++) {       for (j = i + 1; j <= n; j++) {         if (i != j) {           if (arr[i][0] == arr[j][0] || arr[i][1] == arr[j][1]) {             vec[i].push_back(j);             vec[j].push_back(i);           }         }       }     }     for (i = 1; i <= n; i++) {       if (!vis[i]) {         cnt++;         dfs(i);       }     }     cout << cnt - 1;     return 0;   }   