Logo
(追記) (追記ここまで)

31703번 - Łamigłówka 3 스페셜 저지다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB226630.000%

문제

Bajtek uwielbia grać w gry mobilne. Irytują go jednak często pojawiające się reklamy innych gier, w których osoba grająca radzi sobie bardzo źle, co ma wywołać frustrację osoby oglądającej i chęć zagrania. Jedna z takich reklam (którą być może mieliście okazję sami zobaczyć) szczególnie zapadła Bajtkowi w pamięć.

Jako że inspirację można czerpać ze wszystkiego, Bajtek postanowił na podstawie powyższej gry stworzyć zadanie. Wybierze on sobie docelową kolorową planszę o wymiarach n×m, a grę rozpocznie z planszą n×m, na której żadne pole nie ma koloru. W jednym ruchu może on wybrać rząd lub kolumnę i przemalować wszystkie pola w nim/niej wybranym przez siebie kolorem (zwróć uwagę na to, że daje mu to większą swobodę niż w grze przedstawionej na obrazkach powyżej, gdzie wiersze i kolumny miały narzucone kolory). Aby nieco sformalizować zadanie, wszystkie kolory oznaczył wielkimi literami alfabetu angielskiego. Czy pomożesz mu i napiszesz program, który dla każdej zadanej przez niego planszy poda ciąg ruchów, który poprawnie stworzy docelowy układ kolorów? Możesz założyć, że dostaniesz dane wejściowe, w których ten cel można osiągnąć w co najwyżej n + m ruchach.

입력

W pierwszym wierszu standardowego wejścia znajdują się dwie liczby całkowite n i m (1 ≤ n, m ≤ 2 000), oznaczające odpowiednio wysokość i szerokość planszy.

W każdym z kolejnych n wierszy znajduje się po m znaków, z których każdy jest wielką literą alfabetu angielskiego; j-ty znak w i-tym z tych wierszy oznacza docelowy kolor pola znajdującego się w i-tym rzędzie i j-tej kolumnie planszy.

Gwarantowanym jest, że zadany układ kolorów można osiągnąć ciągiem co najwyżej n+m ruchów opisanych w treści zadania.

출력

W pierwszym wierszu wyjścia powinna znaleźć się jedna liczba całkowita r (1 ≤ r ≤ n+m), oznaczająca liczbę ruchów, które chcesz zrobić. W każdym z następnych r wierszy powinien znaleźć się opis ruchu.

Opis jednego ruchu powinien zaczynać się od znaku ‘R’ lub ‘K’, oznaczającego, czy chcesz przemalować rząd, czy kolumnę (gdzie oczywiście ‘R’ oznacza rząd, a ‘K’ kolumnę). Dalej, po pojedynczej spacji, powinien znajdować się numer rzędu lub kolumny, którą chcesz przemalować. Rzędy numerujemy od góry do dołu liczbami od 1 do n, kolumny zaś od lewej do prawej liczbami od 1 do m. Następnie, po pojedynczej spacji, powinna znajdować się jedna wielka litera alfabetu angielskiego, oznaczająca kolor, na jaki chcesz przemalować wybrany rząd lub kolumnę.

Zwróć uwagę na to, że nie musisz minimalizować liczby ruchów – wystarczy, że wykonasz ich co najwyżej n + m.

제한

예제 입력 1

5 5
AAPAA
APPAA
AAPAA
AAPAA
APPPA

예제 출력 1

10
R 1 Z
K 4 A
K 2 P
R 5 P
R 4 A
R 3 A
R 1 A
K 5 A
K 3 P
K 1 A

예제 입력 2

2 3
AAA
PPP

예제 출력 2

2
R 2 P
R 1 A

노트

Wyjaśnienie przykładu: Jeśli w pierwszym teście przykładowym założymy, że litera ‘P’ oznacza kolor zielony, litera ‘A’ oznacza kolor żółty, zaś litera ‘Z’ oznacza kolor niebieski, to wybrany ciąg ruchów maluje planszę w następujący sposób:

출처

Contest > Algorithmic Engagements > PA 2024 4-1번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /