Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdlib.h>#include <stdio.h>#include <string.h>using namespace std;int pre[1001];int t[1001];int isFilled[10001][1001];int ii[2] = { -1, 1 };int jj[2] = { -1, 1 };bool isUnioned = false;int find_root(int x) {int r = x;if (pre[r] == -1) return -1;while (pre[r] != r) r = pre[r];int i, j;i = x;while (pre[i] != r) {j = pre[i];pre[i] = r;i = j;}return r;}void union_op(int x, int y) {int fx = find_root(x);