A+B

시간 제한2초메모리 제한64 MB

요약
금지 문자열 집합 V가 주어질 때, V와 직교하는 모든 문자열 중 A와 B의 사전순 인덱스를 더해 그 위치에 해당하는 문자열을 구하는 문제입니다.
난이도

보통10점 중 7점

유형
수학, 조합론, 문자열
정답자
아직 제출이 없습니다

문제

길이가 같은 두 문자열 P=P1P2⋯PnP = P_1 P_2 \cdots P_n 과 Q=Q1Q2⋯QnQ = Q_1 Q_2 \cdots Q_n 이 모든 ii (1≤i≤n1 \le i \le n)에 대해 Pi≠QiP_i \ne Q_i 를 만족하면, 두 문자열은 직교(orthogonal) 한다고 합니다. 길이가 nn 인 문자열 SS 가 집합 V={V1,V2,…,Vm}V = \{V_1, V_2, \ldots, V_m\} (각 문자열의 길이도 nn)의 모든 VjV_j (1≤j≤m1 \le j \le m)와 직교하면, SS 는 집합 VV 에 직교한다고 합니다.

알파벳은 소문자 영문자로 고정합니다. 집합 VV 가 주어졌을 때, VV 에 직교하는 길이 nn 의 모든 문자열을 사전순(오름차순)으로 정렬하면 수열 T=T0,T1,…,TM−1T = T_0, T_1, \ldots, T_{M-1} 을 얻습니다. 여기서 MM 은 그러한 문자열의 개수입니다.

A=TaA = T_a 와 B=TbB = T_b 의 직교 합(orthogonal sum) 은 c=(a+b) mod Mc = (a + b) \bmod M 일 때의 문자열 C=TcC = T_c 로 정의합니다.

집합 VV 와 (둘 다 VV 에 직교하는) 두 문자열 AA, BB 가 주어질 때, VV 를 기준으로 한 AA 와 BB 의 직교 합 CC 를 구하세요.

입력

첫 번째 줄에는 두 정수 nn 과 kk 가 주어집니다. nn 은 각 문자열의 길이이며 (1≤n≤1000001 \le n \le 100000), kk 는 VV 에 속한 문자열의 개수로 1≤n⋅k≤1000001 \le n \cdot k \le 100000 을 만족합니다. 이어지는 kk 개의 줄에는 각각 문자열 VjV_j 가 하나씩 주어집니다. 그 다음 두 줄에는 길이가 각각 nn 인 문자열 AA 와 BB 가 주어집니다.

모든 문자열 VjV_j, AA, BB 는 소문자 영문자로만 이루어집니다. AA 와 BB 는 VV 에 직교함이 보장됩니다.

출력

VV 를 기준으로 한 AA 와 BB 의 직교 합 CC 를 출력하세요.

예제6

  1. 예제 1

    입력
    2 2
    ac
    ad
    bb
    bb
    
    예상 출력
    be
    
  2. 예제 2

    입력
    2 1
    yy
    zz
    zz
    
    예상 출력
    zx
    
  3. 예제 3

    입력
    1 1
    a
    b
    c
    
    예상 출력
    c
    
  4. 예제 4

    입력
    1 1
    a
    z
    z
    
    예상 출력
    y
    
  5. 예제 5

    입력
    3 2
    abc
    abd
    xyz
    mno
    
    예상 출력
    kmn
    
  6. 예제 6

    입력
    4 3
    bcda
    efgb
    hijc
    zzzz
    yyyy
    
    예상 출력
    yyyx