만드는 중입니다

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

3진법 Mex

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

요약
3진수 k자리로 인덱스된 배열 a, b가 주어질 때, 자릿수별 mex로 정의한 3진 mex 값이 m인 (i, j) 쌍의 a[i]와 b[j] 곱을 모두 더해 c[m]을 구합니다.
난이도

보통10점 중 7점

유형
수학, 배열, 구현
정답자
아직 제출이 없습니다

문제

mex(a,b)\text{mex}(a, b)는 aa와도 bb와도 같지 않은 가장 작은 음이 아닌 정수를 뜻한다. 항상 mex(a,b)<3\text{mex}(a, b) < 3이므로 3진법 mex를 정의할 수 있다. aa와 bb를 3진법으로 나타내면 다음과 같다.

a=∑i=0k−1ai⋅3i,b=∑i=0k−1bi⋅3i,a = \sum_{i=0}^{k-1} a_i \cdot 3^i, \quad b = \sum_{i=0}^{k-1} b_i \cdot 3^i,

여기서 각 aia_i와 bib_i는 0부터 2까지의 정수다. 이때 mex3\text{mex}_3은 다음과 같이 정의한다.

mex3(a,b)=∑i=0k−1mex(ai,bi)⋅3i.\text{mex}_3(a, b) = \sum_{i=0}^{k-1} \text{mex}(a_i, b_i) \cdot 3^i.

두 수열 a0,…,a3k−1a_0, \dots, a_{3^k-1}과 b0,…,b3k−1b_0, \dots, b_{3^k-1}이 주어진다. 수열 c0,…,c3k−1c_0, \dots, c_{3^k-1}을 다음 식으로 계산하라.

ck=∑mex3(i,j)=kai⋅bjc_k = \sum_{\text{mex}_3(i, j) = k} a_i \cdot b_j

입력

첫 줄에 정수 kk (1≤k≤121 \le k \le 12)가 주어진다.

둘째 줄에 3k3^k개의 정수 a0,…,a3k−1a_0, \dots, a_{3^k-1} (0≤ai≤1030 \le a_i \le 10^3)이 주어진다.

셋째 줄에 3k3^k개의 정수 b0,…,b3k−1b_0, \dots, b_{3^k-1} (0≤bi≤1030 \le b_i \le 10^3)이 주어진다.

출력

3k3^k개의 정수 c0,…,c3k−1c_0, \dots, c_{3^k-1}을 공백으로 구분하여 출력한다.

힌트

참고로 312=5314413^{12} = 531441이다.

예제2

  1. 예제 1

    입력
    1
    1 1 1
    1 1 1
    
    예상 출력
    4 3 2
    
  2. 예제 2

    입력
    2
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    
    예상 출력
    16 12 8 12 9 6 8 6 4