만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

중심 문자열

시간 제한3초메모리 제한1024 MB

요약
길이가 같은 N개의 문자열과 거리 한계 D가 주어질 때, 모든 문자열과 해밍 거리가 D 이하인 문자열을 찾거나 그런 문자열이 없음을 출력합니다.
난이도

보통10점 중 7점

유형
문자열, 완전 탐색, 재귀, 백트래킹
정답자
아직 제출이 없습니다

문제

길이가 모두 LL로 같은 문자열들이 여러 개 있고, 이 문자열들이 얼마나 비슷한지 알고 싶다고 합시다. 같은 길이의 두 문자열 SS와 TT에 대해 거리 d(S,T)d(S,T)는 Si≠TiS_i \neq T_i를 만족하는 인덱스 ii의 개수입니다. 예를 들어 berry와 bears의 dd는 3번째와 5번째 문자만 다르므로 22입니다.

거리 상한 DD가 주어졌을 때, 모임 안의 모든 문자열 AiA_i에 대해 d(S,Ai)≤Dd(S,A_i) \leq D를 만족하는 길이 LL의 문자열 SS가 있는지 판단하세요. 이런 SS를 중심 문자열이라고 합니다. 중심 문자열이 주어진 문자열 중 하나일 필요는 없습니다.

입력

첫 줄에 정수 NN (1≤N≤501 \leq N \leq 50), LL (1≤L≤10000001 \leq L \leq 1000000), DD (0≤D≤60 \leq D \leq 6)가 주어집니다. NN은 문자열의 개수, LL은 문자열의 공통 길이, DD는 거리 상한입니다.

이어서 NN개의 줄에 길이 LL인 문자열 AiA_i가 한 줄에 하나씩 주어지며, 소문자로만 이루어집니다. N⋅L≤1000000N \cdot L \leq 1000000이 보장됩니다.

출력

모든 1≤i≤N1 \leq i \leq N에 대해 d(S,Ai)≤Dd(S,A_i) \leq D를 만족하는 소문자 문자열 SS가 있으면, 그런 문자열 하나를 한 줄에 출력합니다. 없으면 숫자 0 하나를 출력합니다.

예제3

  1. 예제 1

    입력
    2 4 1
    abba
    bbca
    
    예상 출력
    abca
    
  2. 예제 2

    입력
    3 4 3
    abcd
    efgh
    ijkl
    
    예상 출력
    abgl
    
  3. 예제 3

    입력
    3 4 2
    abcd
    efgh
    ijkl
    
    예상 출력
    0