Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;int fa[1010 * 1010];int rk[1010 * 1010];int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, -1, 1};bool a[1010][1010];int findfa(int x) {return x == fa[x] ? x : fa[x] = findfa(fa[x]);}void Union(int u, int v) {int x = findfa(u), y = findfa(v);if (x != y) {if (rk[x] < rk[y]) fa[x] = y, rk[y] += rk[x];else fa[y] = x, rk[x] += rk[y];}}int main(void) {ios::sync_with_stdio(false);for (int i = 0; i < 1000 * 1000; ++ i) fa[i] = i, rk[i] = 1;int N;cin >> N;int ans = 0;for (int i = 0; i < N; ++ i) {int x, y;