Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
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 |