만드는 중입니다

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

문자열 집합 조합하기

면접 대비

시간 제한1초메모리 제한512 MB

요약
세 문자열 X, Y, Z와 정수 k가 주어질 때, 두 개 이상의 문자열에서 길이가 k인 부분 수열을 사전순으로 출력합니다.
난이도

보통10점 중 4점

유형
완전 탐색, 해시맵, 문자열
정답자
아직 제출이 없습니다

문제

알파벳 소문자로 이루어진 문자열 XX, YY, ZZ가 주어진다. 각 문자열에는 중복된 문자가 없다.

문자열 SS의 문자 중 임의로 kk개를 골라 SS에서의 순서를 유지하여 만든 모든 부분 문자열의 집합을 C(S,k)C(S, k)라고 하자. 예를 들어 SS = abc일 때 C(S,2)={ab,ac,bc}C(S, 2) = \{ab, ac, bc\}이다.

문자열 XX, YY, ZZ와 정수 kk가 주어질 때, C(X,k)C(X, k), C(Y,k)C(Y, k), C(Z,k)C(Z, k) 중 두 개 이상에 나타나는 부분 문자열을 오름차순으로 출력하자.

입력

첫 번째 줄에 문자열 XX가 주어진다.

두 번째 줄에 문자열 YY가 주어진다.

세 번째 줄에 문자열 ZZ가 주어진다.

네 번째 줄에 정수 kk가 주어진다.

출력

C(X,k)C(X, k), C(Y,k)C(Y, k), C(Z,k)C(Z, k) 중 두 개 이상에 나타나는 부분 문자열을 오름차순으로 출력한다. 한 줄에 부분 문자열을 하나씩 출력한다. 그런 부분 문자열이 없으면 -1을 출력한다.

제한

  • 1≤∣X∣,∣Y∣,∣Z∣≤171 \le |X|, |Y|, |Z| \le 17
  • 1≤k≤min⁡(∣X∣,∣Y∣,∣Z∣)1 \le k \le \min(|X|, |Y|, |Z|)
  • 문자열 XX에는 중복된 문자가 없다.
  • 문자열 YY에는 중복된 문자가 없다.
  • 문자열 ZZ에는 중복된 문자가 없다.

예제4

  1. 예제 1

    입력
    a
    a
    a
    1
    
    예상 출력
    a
    
  2. 예제 2

    입력
    ab
    ba
    ac
    1
    
    예상 출력
    a
    b
    
  3. 예제 3

    입력
    abc
    acde
    cde
    2
    
    예상 출력
    ac
    cd
    ce
    de
    
  4. 예제 4

    입력
    a
    b
    cde
    1
    
    예상 출력
    -1