만드는 중입니다

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

거대한 수열

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

요약
세 배열 a, b, c가 주어질 때, 구간 안의 모든 부분구간에 대해 a의 AND, b의 OR, c의 GCD를 곱한 값의 합을 각 질의마다 2^32로 나눈 나머지로 구합니다.
난이도

어려움10점 중 10점

유형
분할 정복, 비트 연산, 정수론, 누적 합
정답자
아직 제출이 없습니다

문제

세 수열 a1,…,ana_1, \ldots, a_n, b1,…,bnb_1, \ldots, b_n, c1,…,cnc_1, \ldots, c_n이 주어진다. 구간 [ℓ,r][\ell, r]의 값은 세 값의 곱이다. 세 값은 각각 aℓ,…,ara_\ell, \ldots, a_r의 비트 AND, bℓ,…,brb_\ell, \ldots, b_r의 비트 OR, cℓ,…,crc_\ell, \ldots, c_r의 최대공약수이다.

질의가 mm개 주어진다. 각 질의는 구간 [ℓ,r][\ell, r]을 나타내며, ℓ≤ℓ′≤r′≤r\ell \le \ell' \le r' \le r을 만족하는 모든 구간 [ℓ′,r′][\ell', r']의 값을 더한 합을 구한다. 답은 2322^{32}로 나눈 나머지로 출력한다.

입력

첫째 줄에 두 정수 nn, mm이 주어진다 (1≤n≤1061 \le n \le 10^6, 1≤m≤5⋅1061 \le m \le 5 \cdot 10^6).

둘째 줄에는 nn개의 정수 a1,…,ana_1, \ldots, a_n이 주어진다.

셋째 줄에는 nn개의 정수 b1,…,bnb_1, \ldots, b_n이 주어진다.

넷째 줄에는 nn개의 정수 c1,…,cnc_1, \ldots, c_n이 주어진다. 모든 aia_i, bib_i, cic_i는 1≤ai,bi,ci≤n1 \le a_i, b_i, c_i \le n을 만족한다.

이후 mm개의 줄에는 질의를 나타내는 두 정수 ℓ\ell, rr이 주어진다 (1≤ℓ≤r≤n1 \le \ell \le r \le n).

출력

mm개의 줄을 출력한다. ii번째 줄에는 ii번째 질의의 답을 2322^{32}로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    5 3
    3 3 1 1 1
    2 1 3 2 2
    4 5 3 4 4
    1 2
    2 5
    4 5
    
    예상 출력
    48
    63
    24
    
  2. 예제 2

    입력
    1 1
    1
    1
    1
    1 1
    
    예상 출력
    1