OR & XOR (Large)

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

요약
N^2개의 (A_i XOR B_j) 항 가운데 p개를 OR 연산으로 바꿀 때 합의 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
비트 연산, 그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N, 수열 B_1,B_2,⋯ ,B_NB\_1, B\_2, \cdots, B\_N 과 정수 pp가 주어진다.

∑_i=1N,∑_j=1N,(A_i⊕B_j)\sum\_{i=1}^N\\, \sum\_{j=1}^N\\, (A\_i \oplus B\_j)

⊕\oplus는 Bitwise XOR 연산을 의미한다.

위의 수식을 전개했을 때 나타나는 N2N^{2}개의 Bitwise XOR 연산 중 pp개를 Bitwise OR 연산으로 변경할 때, 가능한 수식의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 NN과 정수 pp가 공백으로 구분되어 주어진다.

둘째 줄에 수열 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어진다.

셋째 줄에 수열 B_1,B_2,⋯ ,B_NB\_1, B\_2, \cdots, B\_N이 공백으로 구분되어 주어진다.

출력

문제에서 요구하는 값을 출력한다.

제한

  • 1≤N≤200 0001 \le N \le 200\ 000
  • 0≤p≤N20 \le p \le N^2
  • 0≤A_i,B_j<2170 \le A\_i, B\_j < 2^{17}
  • A_i,B_jA\_i, B\_j는 정수

예제2

  1. 예제 1

    입력
    4 8
    4 6 1 3
    5 4 1 7
    
    예상 출력
    86
    
  2. 예제 2

    입력
    9 29
    10 7 1 8 0 7 5 5 4
    14 8 8 12 1 4 11 6 0
    
    예상 출력
    791