Задачи про систему непересекающихся множеств

Реализация с помощью леса

Тесты находятся в каталоге union-find-forest, в первой строке входного файла находится размер множества $n$ и количество операций объединения $k$. В каждой следующей из $k$ строк даны по два числа от $0$ до $n-1$, два множества с указанными элементами необходимо объединить. Вы должны вывести NO, если эти два элемента не были в одном множестве до объединения, и YES, если были. Всего должно получиться $k$ строк с ответами.

Материалы:

Количество островков в озере

Эту задачу мы не обсуждали на лекциях. Я пишу условие кратко, надеюсь, оно будет понятно, а тесты его пояснят. Тесты находятся в каталоге image-clusterization. В первой строке дана высота озера $m$ и ширина $n$. В следующих $m$ строках есть по $n$ символов, точек или диезов. Каждый диез — это земля, а точка — вода. Острова состоят из кусочков земли, которые соединяются горизонтально или вертикально (не по диагонали). Надо посчитать и вывести количество островов в озере.