만드는 중입니다

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

다양성

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

요약
주기가 n과 m인 두 정수 수열이 주어질 때, 처음 k개 항의 a_i XOR b_i 합을 10^9+7로 나눈 나머지를 구합니다.
난이도

보통10점 중 7점

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

문제

두 개의 무한 주기 정수열 aia_i와 bib_i가 주어진다. 두 수열의 주기 길이는 각각 nn과 mm이다. 즉, 자연수 nn, mm과 수 a1,a2,…,ana_1, a_2, \dots, a_n, b1,b2,…,bmb_1, b_2, \dots, b_m이 주어지며, 모든 자연수 ii에 대해 ai=ai+na_i = a_{i+n}, bi=bi+mb_i = b_{i+m}이 성립한다.

자연수 kk도 주어진다. 두 수열의 다양성은 i=1,2,…,ki = 1, 2, \dots, k에 대해 ai⊕bia_i \oplus b_i를 모두 더한 값이다. 여기서 ⊕\oplus는 비트 단위 배타적 논리합(XOR)으로, 두 수의 이진수에서 자릿값이 서로 다른 자리에 1을 만든다. 예를 들어 5⊕3=(101)2⊕(011)2=(110)2=65 \oplus 3 = (101)_2 \oplus (011)_2 = (110)_2 = 6이다.

주어진 두 수열의 다양성을 구하라.

입력

첫째 줄에 nn, mm, kk가 주어진다 (1≤n,m≤2⋅1051 \le n, m \le 2 \cdot 10^5, 1≤k≤10181 \le k \le 10^{18}).

둘째 줄에 nn개의 정수 a1,…,ana_1, \dots, a_n이 주어진다 (0≤ai≤10180 \le a_i \le 10^{18}).

셋째 줄에 mm개의 정수 b1,…,bmb_1, \dots, b_m이 주어진다 (0≤bi≤10180 \le b_i \le 10^{18}).

출력

답이 매우 클 수 있으므로, 다양성을 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3 2 10
    1 6 4
    5 2
    
    예상 출력
    33
    
  2. 예제 2

    입력
    10 5 30
    5 16 2 10 7 2 4 20 5 12
    4 11 14 23 5
    
    예상 출력
    435