&+ +&

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

보통5비트 연산수학구현아직 제출이 없습니다시간 제한1.5초메모리 제한512 MB

문제

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

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

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

입력

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

출력

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

힌트

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

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