만드는 중입니다

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

이중 완전순열

면접 대비

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

요약
길이 N(16 이하)인 순열 a와 b가 주어질 때, 모든 i에 대해 c_i가 a_i, b_i와 모두 다른 순열 c의 개수를 구합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

두 순열 aa와 bb가 주어진다. 두 순열의 길이는 모두 NN이고, 각각 [1,N][1, N] 범위의 모든 정수를 정확히 한 번씩 포함한다. 길이가 NN이고 [1,N][1, N] 범위의 모든 정수를 포함하는 새로운 순열 cc를 만들어라. 모든 인덱스 ii (11부터 시작)에 대해 다음 조건을 만족해야 한다.

ci≠aiandci≠bic_i \ne a_i \quad \text{and} \quad c_i \ne b_i

즉, 같은 인덱스에서 cic_i는 aia_i나 bib_i와 같을 수 없다. aa와 bb가 주어졌을 때, 이 조건을 만족하는 순열 cc의 개수를 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스는 다음과 같다. 첫 줄에 순열의 길이 NN이 주어진다. 다음 줄에 순열 aa의 NN개 정수가 공백으로 구분되어 주어지며, ii번째 정수가 aia_i이다. 그다음 줄에 순열 bb의 NN개 정수가 공백으로 구분되어 주어지며, ii번째 정수가 bib_i이다.

제약: 1≤N≤161 \le N \le 16, 1≤ai≤N1 \le a_i \le N, 1≤bi≤N1 \le b_i \le N. 각 순열 안의 값은 모두 서로 다르다. 모든 테스트 케이스의 NN 합은 2,0002{,}000 이하이다.

출력

각 테스트 케이스마다 조건을 만족하는 순열 cc의 개수를 출력한다.

힌트

오버플로를 막기 위해 32비트 정수형보다 큰 자료형을 써야 할 수도 있다.

예제1

  1. 예제 1

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