페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3167

배열 2s 512MB

문제

여러분에게는 음이 아닌 정수 n개가 있는 배열 4개가 주어진다. 각 배열에서 하나씩 뽑아서 bitwise xor를 했을 때 k가 되는 쌍의 개수를 구하자.

 

bitwise xor, C언어에서 ^에 해당하는 연산이다. a^b의 값은 ab2진수로 표현한 뒤, 각 자리에 대해 하나만 1이면 1, 아니면 0의 값을 가지는 수이다. 예를 들어 6^5의 값은, 62진수로 표현했을 때 110, 52진수로 표현했을 때 101이며, 4의 자리는 0 (12), 2의 자리는 1(11), 1의 자리는 1(11)이기 때문에 011이 된다. 


입력

첫 번째 줄에 자연수 n과 xor를 해서 만들 숫자 k가 주어진다. (1≦k≦10^9) 두 번재 줄부터 4개의 줄에 n개의 정수가 주어진다. 각 정수는 0 이상 10^9 이하이다. [제한] 부분 문제 1 [30점] 2≦n≦50 부분 문제 2 [70점] 2≦n≦1000

출력

bitwise xor를 해서 k를 만들 수 있는 쌍의 개수를 출력한다.

예제 #1

2 3

0 0
2 0
0 0
0 1
4

예제 #2

2 0

1 10
1 10
1 10
1 10
8


출처

Google CodeJam Kickstart Mini Practice Round B, 2018camp contest5 problemD
로그인해야 코드를 작성할 수 있어요.