Zadanie B — Anagramy

Transkrypt

Zadanie B — Anagramy
Mistrzostwa Politechniki Śląskiej w Programowaniu
21-05-2006
Zadanie B — Anagramy
Anagramem słowa nazywamy słowo otrzymane przez zmianę kolejności liter słowa oryginalnego, np. TAK, AKT, TKA, KAT są swoimi anagramami. Twoim celem jest wyszukiwanie anagramów w podanym słowniku.
Słownik zawiera słowa języka naturalnego, które należy podzielić na grupy zawierające
słowa będące swoimi anagramami. Następnie należy znaleźć najliczniejszą taką grupę.
Wielkość liter ma znaczenie. Można założyć że słowa nie powtarzają się w słowniku.
Przez słowo definiujemy dowolny spójny ciąg symboli niezawierający spacji.
Specyfikacja wejścia
W pierwszym wierszu wejścia znajduje się liczba całkowita będąca liczbą zestawów danych. Pojedynczy zestaw danych składa się z jednego wiersza zawierającego słowa języka
naturalnego rozdzielone pojedynczymi spacjami, przy czym łączna liczba wszystkich znaków i spacji jest z przedziału [1, 53 000 000]. Koniec słownika jest oznaczony znakiem #.
Długość pojedynczego słowa nie przekracza 100 znaków.
Specyfikacja wyjścia
Dla każdego zestawu danych na wyjście należy wyprowadzić dwie liczby rozdzielone pojedynczą spacją. Pierwsza z liczb określa liczebność najliczniejszej grupy słów stanowiących
swoje anagramy. Druga z liczb określa liczbę liter jednego ze słów z tej grupy. Jeśli występuje kilka równolicznych grup, to należy wybrać grupę o najdłuższych słowach.
Przykładowe wejście
3
duży żydu domEk modEk kedom użyd#
TAK KOT AKTOR KOTKA RAK TKA AKT ROK KAT#
hong--kong kong--hong king-kong kong-king Hong--Kong#
Przykładowe wyjście
3 4
4 3
2 10