Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2025
Problem description
Po dniu pełnym atrakcji w Dubaju Karol postanowił udać się do Las Vegas, gdzie jego rosnące zainteresowanie teorią prawdopodobieństwa i dysponowanie nienagannymi manierami skłoniły go do zostania krupierem.
Karol otwierał właśnie stół do gry w pokera, gdy przypomniał sobie, że z jednym z N graczy siedzących przy tym stole wiążą go zażyłości towarzyskie. By lekko dopomóc jego szczęściu, Karol postanowił, że “wytasuje” znajomemu strita przy rozdawaniu kart. Proces rozdawania kart w kasynie Karola jest maszynowy – krupier wkłada do maszyny talię kart, a ta samodzielnie rozdaje karty graczom. W maszynie jest już talia kart i teraz Karol zastanawia się, ile co najmniej zamian kart musi wykonać, by jego znajomy na pewno dostał strita. Przez zamianę kart rozumiemy wybranie dwóch kart z maszyny i włożenie pierwszej w miejsce drugiej i drugiej w miejsce pierwszej.
Strit to układ kart – pięć kart o następujących po sobie wartościach,
przy czym karty nie mogą być wszystkie jednego koloru (strit tworzą np.
karty 4, 5, 6, 7 w
kolorze karo i 8 w kolorze trefl). As może być zarówno
najwyższą kartą (strit 10 J Q K A), jak i najniższą (strit
A 2 3 4 5), jednak zakazane jest tworzenie stritów, w
których as ma podwójną rolę (np. K A 2 3 4).
Maszyna rozdaje karty w taki sposób, że gracz o numerze k otrzymuje k-tą, (N+k)-tą, (2N+k)-tą, (3N+k)-tą i (4N+k)-tą kartę z talii.
Znajomy Karola zawsze jest graczem nr 1.
Napisz program, który wczyta liczbę graczy i opis talii znajdującej się w maszynie, wyznaczy liczbę ręcznych zamian kart z talii wystarczającą do zapewnienia strita graczowi nr 1 i wypisze ją na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna dodatnia liczba całkowita N, określająca liczbę graczy. W drugim wierszu wejścia znajdują się 52 opisy kolejnych kart z talii pooddzielane pojedynczymi odstępami.
Opis karty składa się z dwóch następujących bezpośrednio po sobie
części: pierwsza to wartość oznaczana przez jeden spośród napisów
A, K, Q, J,
10, 9, …, 2, natomiast druga to
kolor oznaczany przez jeden spośród napisów s,
h, c, d (spades,
hearts, clubs,
diamonds).
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna nieujemna liczba całkowita oznaczająca minimalną liczbę zamian kart w talii potrzebnych do zagwarantowania graczowi nr 1 strita.
Ograniczenia
2 ≤ N ≤ 10, karty opisane na wejściu tworzą permutację talii.
Przykład
Dla czytelności drugi wiersz każdego zestawu danych został ręcznie podzielony. W zestawach danych, na których testowane są programy, zawsze są dokładnie dwa wiersze (jak opisano w sekcji Wejście).
| Wejście | Wyjście | Wyjaśnienie |
|
|
Gracz nr 1 ma strita ( |
| Wejście | Wyjście | Wyjaśnienie |
|
|
Po zamianie kart |
| Wejście | Wyjście | Wyjaśnienie |
|
|
Po zamianie kart |