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

21400번 - Интернет-банкинг 스페셜 저지다국어

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

문제

Интернет-банкинг --- это современная технология, которая позволяет клиентам банка получать доступ к информации о своих счетах с помощью сети Интернет из практически любой точки земного шара. Разумеется, при использовании интернет-банкинга большую роль играют вопросы безопасности. Поэтому для доступа к системе Интернет-банкинга пользователю необходимо ввести пароль.

Система Интернет-банкинга Bank 2.0, используемая одним Очень Крупным Банком, использует следующий способ ввода пароля. Серверной частью системы случайно генерируются $n$ строк $s_1, \ldots, s_n,ドル каждая из которых состоит из $m$ строчных букв латинского алфавита (предполагается, что пароли состоят только из таких букв).

При вводе пароля пользователю разрешается выполнять такую операцию: выбрать из данных строк две (обозначим их как $s_i$ и $s_j,ドル 1ドル \le i, j \le n,ドル $i \ne j$) и некоторую позицию $k$ (1ドル \le k \le m$) в них, после чего поменять местами $k$-е символы в $s_i$ и $s_j$. Например, если $s_i=$<<abcde>>, $s_j=$<<vwxyz>>, $k=3,ドル то после выполнения этой операции будут верны следующие равенства: $s_i=$<<abxde>> и $s_j=$<<vwcyz>>. Для ввода пароля пользователю необходимо за минимальное число таких операций добиться состояния, в котором хотя бы одна из строк $s_1, \ldots, s_n$ совпадает с $p$.

Ваша задача состоит в том, чтобы написать программу, которая по заданному набору строк $s_1, \ldots, s_n$ и паролю пользователя $p$ определит минимальное число операций указанного типа, которые необходимо выполнить для ввода пароля, а также найдет способ ввода пароля за такое число операций.

입력

Первая строка входного файла содержит целое число $n$ (2ドル \le n \le 100$). Каждая из последующих $n$ строк содержит строки $s_1, \ldots, s_n$. Все они состоят только из строчных букв латинского алфавита и имеют одинаковую длину $m$ (2ドル \le m \le 100$).

Последняя строка входного файла содержит пароль пользователя $p$. Его длина равна $m,ドル и он состоит только из строчных букв латинского алфавита.

출력

Первая строка выходного файла должна содержать минимальное число $c$ операций, необходимых для ввода пароля. Если с помощью описанных в условии операций пароль ввести нельзя, то выведите в первой строке <<$-1$>>.

В случае существования решения следующие $c$ строк должны содержать описания операций. Операции должны быть перечислены в порядке их применения, каждая из строк должна содержать три целых числа: $i,ドル $j$ и $k$ (1ドル \le i, j \le n,ドル $i \ne j,ドル 1ドル \le k \le m$). Эти числа означают, что соответствующая операция состоит в обмене $k$-ых символов строк $s_i$ и $s_j$.

제한

예제 입력 1

3
abc
cab
bca
acb

예제 출력 1

2
1 3 2
1 2 3

예제 입력 2

3
abc
cab
bca
acd

예제 출력 2

-1

힌트

출처

Olympiad > Russian Olympiad in Informatics > Russia High School Programming Contest > Russia High School Programming Contest 2008 A번

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

출처

대학교 대회

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

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