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

22156번 - Ключ к шифру 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB289937.500%

문제

Все те сотни лет, в течении которых существуют государства, границы и периодически возникающие конфликты между странами, существует и система шпионажа. Агент, нелегально или легально проживающий в одной стране, отправляет донесения, содержащие в себе государственную тайну, в другую страну. Способы передачи донесений непрерывно меняются. Сто лет назад это были бумажные письма, пятьдесят лет назад — радиограммы, сейчас же есть возможность отправить донесение даже по электронной почте. Однако, одна характерная черта всех донесений не изменилась и не изменится никогда — любое информационное сообщение можно перехватить. Чтобы застраховаться от такой возможности, донесения шифруются так, чтобы прочитать их мог только тот, кому они предназначены. При этом обычно используется некоторый ключ — сравнительно небольшая строка, часто не имеющая смысла, с помощью которой донесение можно расшифровать. А чтобы, в случае поимки агента, он не мог сообщить ключ заинтересованным лицам, каждому донесению соответствует свой ключ, который отправляется вместе с донесением, тоже зашифрованный, но не очень сложным способом. Вам предстоит научиться получать этот ключ по его зашифрованной версии для некоторого алгоритма шифрования.

Чтобы зашифровать непустой ключ s, агент сначала выбирает такую строку t, что строка s является префиксом строки t, а развернутая строка s — суффиксом строки t. При этом в строке t могут быть символы, не имеющие отношения к строке s. После этого слева к строке t дописывается некоторое случайное (возможно, нулевое) количество случайных символов, справа же дописывается точно такое же количество, возможно других, случайных символов. Теперь строка t представляет из себя зашифрованный ключ s.

Понятно, что при попытках восстановить сам ключ, то есть исходную строку s, вариантов может получиться несколько. Поэтому было принято решение, что ключ должен быть самой длинной строкой из всех возможных вариантов, а в случае, если и таких строк несколько — то такой строкой, что количество случайно дописанных слева и справа символов было минимально, то есть строка t имеет максимальную длину. Вам необходимо реализовать алгоритм восстановления ключа s по его зашифрованной версии.

입력

Первая строка содержит одно целое число n — количество ключей, которые вам необходимо расшифровать. Следующие n строк содержат зашифрованные версии искомых ключей по одной на строке. Каждая зашифрованная версия содержит только строчные буквы латинского алфавита. Суммарная длина всех зашифрованных ключей не превышает 100000 символов. Гарантируется, что для каждой зашифрованной версии существует хотя бы один подходящий непустой ключ.

출력

Выведите n расшифрованных ключей, по одному на строке.

제한

예제 입력 1

3
ababc
ababa
cxbaydzabxe

예제 출력 1

bab
ababa
xba

힌트

출처

Contest > Russian Code Cup > 2012 > RCC 2012 Second Qualification Round B번

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

출처

대학교 대회

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

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