#770
Gold I
문자열 바꾸기
스페셜 저지
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
10
정답
3
맞힌 사람
3
정답 비율
30.0%

문제

성현이는 길이가 MM인 문자열 tt를 가장 좋아한다. 또한, 성현이는 각각 길이가 MMNN개의 문자열 s1,s2,,sNs_1, s_2, \ldots, s_N을 가지고 있다. (1N,M10001 \le N, M \le 1\,000)

성현이는 다음과 같은 두 가지 연산을 수행할 수 있다.

  1. 성현이는 문자열 sxs_x를 선택하고, pp번째 문자와 qq번째 문자를 서로 바꾼다. (1xN,1p,qM1 \le x \le N, 1 \le p, q \le M)
  2. 성현이는 두 문자열 sxs_xsys_y를 선택하고, 각각의 kk번째 문자를 서로 바꾼다. (1x,yN,1kM1 \le x, y \le N, 1 \le k \le M)

성현이의 목표는 s1s_1tt와 동일하게 만드는 것이다. 목표를 달성하기 위한 연산 과정을 하나 찾으시오. 성현이는 매우 바쁘기 때문에, 최대 2M2M번의 연산만 수행할 수 있다. 항상 목표를 달성할 수 있는 입력만 주어진다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1T101 \le T \le 10) 각 테스트 케이스는 다음과 같은 형식으로 주어진다.

첫째 줄에 NNMM이 공백으로 구분되어 주어진다.

둘째 줄에 문자열 tt가 주어진다.

이어서 NN개의 줄에 걸쳐 s1,s2,,sNs_1, s_2, \ldots, s_N이 한 줄에 하나씩 주어진다.

항상 목표를 달성할 수 있는 입력만 주어지며, 모든 문자열은 영어 소문자(a-z)로만 이루어져 있다.

출력

각 테스트 케이스마다 다음과 같이 출력한다.

첫째 줄에 수행할 연산의 횟수 KK를 출력한다. (0K2M0 \le K \le 2M)

이어서 KK개의 줄에 걸쳐 수행할 연산을 순서대로 출력한다. 각 연산은 다음과 같은 형식 중 하나여야 한다.

  • 1 x p q
  • 2 x y k

예제 입력 1

3
3 6
banana
nabana
banana
nnbaaa
5 3
abc
def
bca
ghi
jkl
mno
3 5
abcde
abcde
abcde
zzzzz

예제 출력 1

3
2 1 2 1
1 1 3 5
2 1 2 5
5
1 2 1 3
2 1 2 1
1 2 2 3
2 1 2 2
2 1 2 3
0

제약 사항

  • 데이터 2-6: N,M100N, M \le 100
  • 데이터 7-12: 추가적인 제약 사항이 없다.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
5883🥇
이준휘
C++191ms296684KB2469B
5859🥈
정준모
C++897ms2360KB3204B
5537🥉
조서현
Python1054ms119192KB1450B
난이도 투표
Gold I2명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
5883
맞았습니다
C++191ms296684KB2469B2026. 05. 01. 16:31
5882
틀렸습니다
C++--2281B2026. 05. 01. 16:24
5859
맞았습니다
C++897ms2360KB3204B2026. 05. 01. 13:26
5858
컴파일 에러
C++--3186B2026. 05. 01. 13:26
5857
틀렸습니다
C++--3205B2026. 05. 01. 13:25
5856
틀렸습니다
C++--2924B2026. 05. 01. 13:24
5855
컴파일 에러
C++--2904B2026. 05. 01. 13:23
5832
시간 초과
Python--1213B2026. 05. 01. 11:37
5537
맞았습니다
Python1054ms119192KB1450B2026. 04. 21. 15:39
5536
틀렸습니다
Python--1450B2026. 04. 21. 15:23