Masz tablicę wejściową o rozmiarze m * n. Każda komórka w tablicy jest wypełniona P lub T. Jedyna operacja, którą możesz wykonać na tablicy, to odwrócenie kolumn. Po odwróceniu kolumny litery we wszystkich komórkach tej kolumny przełączają się (P staje się T i viceversa). Jeśli masz liczbę „x” wierszy z tą samą literą (np. PPPP), otrzymasz punkt. Zaprojektuj algorytm, który pobiera tablicę i zwraca rozwiązanie (które kolumny przerzucić), tak aby powstała tablica miała maksymalną możliwą liczbę punktów.
Uwaga: Jeśli istnieje wiele rozwiązań, które dają najwyższy wynik, wybierz to, które ma najmniejszą liczbę przerzutów. Przykład:
Tablica wejściowa:
PPTPP
PPTPP
PPTTP
PPPTT
PPPTT
Wynik:
3
Objaśnienie:
Rozwiązanie, które daje najwyższe punkty: Odwróć kolumnę nr. 3
Zatem oryginalna tablica wyglądałaby następująco:
PPPPP // 1 point
PPPPP // 1 point
PPPTP
PPTTT
PPTTT
//Total: 2 points
Zauważ, że można również przerzucić kolumny 4 i 5, aby uzyskać wynik dwa, ale to wymaga dodatkowego przewrócenia.
Możesz użyć dowolnego dogodnego formatu wejściowego do przedstawienia dwuwymiarowej tablicy, a także dowolnych dwóch różnych, ale ustalonych wartości do reprezentowania Pi T.
To jest kod golfowy, więc wygrywa najkrótsza odpowiedź (w bajtach).