만드는 중입니다

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

XOR로 정렬 가능한 배열

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

요약
배열 A를 재배열해 모든 위치 쌍이 두 XOR 부등식을 만족하게 할 수 있는 X 값의 쌍 (u, v)의 개수를 구합니다.
난이도

보통10점 중 7점

유형
비트 연산, 해시맵, 수학
정답자
아직 제출이 없습니다

문제

정수 NN개로 이루어진 배열 AA가 주어진다: [A1,A2,…,AN][A_1, A_2, \dots, A_N].

AA의 원소를 재배열하여 1≤i<j≤N1 \le i < j \le N인 모든 쌍 (i,j)(i, j)에 대해 재배열 후 다음 두 조건이 성립하게 만들 수 있으면, 배열 AA는 (p,q)(p, q)-xorderable이다. 두 조건은 Ai⊕p≤Aj⊕qA_i \oplus p \le A_j \oplus q와 Ai⊕q≤Aj⊕pA_i \oplus q \le A_j \oplus p이다. 연산자 ⊕\oplus는 비트 단위 XOR을 뜻한다.

또 길이가 MM인 배열 XX가 주어진다: [X1,X2,…,XM][X_1, X_2, \dots, X_M]. 1≤u<v≤M1 \le u < v \le M인 쌍 (u,v)(u, v) 중에서 AA가 (Xu,Xv)(X_u, X_v)-xorderable인 쌍의 개수를 구하라.

입력

첫 번째 줄에 정수 NN과 MM(2≤N,M≤200,0002 \le N, M \le 200{,}000)이 주어진다.

두 번째 줄에 정수 NN개 AiA_i(0≤Ai<2300 \le A_i < 2^{30})가 주어진다.

세 번째 줄에 정수 MM개 XuX_u(0≤Xu<2300 \le X_u < 2^{30})가 주어진다.

출력

AA가 (Xu,Xv)(X_u, X_v)-xorderable인 쌍 (u,v)(u, v)의 개수를 정수 하나로 출력한다.

예제3

  1. 예제 1

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

    입력
    5 2
    0 7 13 22 24
    12 10
    
    예상 출력
    1
    
  3. 예제 3

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