Przesadzasz, to było do zakodzenia w 20 minut. To jedno z tych zadań, gdzie prawie nie trzeba myśleć, wystarczy pisać i uwazać, żeby się nie rąbnąć.
Ja miałem 1 mapę żeby odwzorować sobie hash słowa na numer wierzchołka, dalej już tylko zwykłe Find&Union. Po wczytaniu grafu wystarczyło przejść wszystkie wierzchołki, znaleźć sobie ich rodzica i wrzucić mu wskaźnik na słowo z obecnego wierzchołka wraz z hashem języka.
Zapytania również były proste - znajdowałem sobie numer wierzchołka, przechodziłem do rodzica i wypisywałem z niego wszystkie słowa w danym języku.