만드는 중입니다

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

&+ +&

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

요약
N^2개 순서쌍 각각에 대해 Ai와 Bj의 비트 AND의 합을 1999로 나눈 나머지와, 모든 Ai+Bj 값의 비트 AND를 구한다.
난이도

보통10점 중 5점

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

문제

길이 NN인 자연수 수열 A1,A2,…,ANA_1, A_2, \dots, A_N과 B1,B2,…,BNB_1, B_2, \dots, B_N이 주어진다. 1≤i≤N1 \le i \le N, 1≤j≤N1 \le j \le N인 모든 순서쌍 (i,j)(i, j)마다 다음 두 값을 구하라.

  • 모든 쌍의 (Ai&Bj)(A_i \mathbin{\&} B_j) 합을 19991999로 나눈 나머지
  • 모든 쌍의 (Ai+Bj)(A_i + B_j) 값 전체의 비트 단위 논리곱

&\mathbin{\&}는 비트 단위 논리곱을 뜻한다. 정의는 힌트 절에 있다.

입력

첫째 줄에 수열 길이 NN (1≤N≤1061 \le N \le 10^6)이 주어진다. 둘째 줄에 수열 AA의 NN개 수가 공백으로 구분되어 주어지고 셋째 줄에 수열 BB의 NN개 수가 공백으로 구분되어 주어진다. AA와 BB의 모든 수는 11 이상 2282^{28} 이하의 자연수이다.

출력

첫째 줄에 위에서 설명한 두 값을 공백으로 구분하여 순서대로 출력한다.

힌트

비트 단위 논리곱은 두 이진수 값의 각 자릿수에 적용되는 연산이다. 먼저 두 피연산자를 이진수로 나타낸 뒤 두 수 모두 해당 자릿수가 11일 때만 11로 정하고 그 외에는 00으로 정한다.

하나의 경우로 13&7=513 \mathbin{\&} 7 = 5이다. 1313은 이진수로 110121101_2이고 77은 이진수로 1112111_2이다. 자릿수를 맞추면 110121101_2와 011120111_2이며 각 자릿수의 논리곱은 010120101_2로 십진수 55와 같다.

예제2

  1. 예제 1

    입력
    3
    4 5 12
    2 10 6
    
    예상 출력
    20 2
    
  2. 예제 2

    입력
    5
    1 2 3 4 5
    3 1 2 4 4
    
    예상 출력
    30 0