아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

분투

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

요약
정수 계수의 타원 안에 있는 모든 격자점 (x, y)마다 (x XOR y)^33 / (x^2 y)를 계산해 더한 값을 10^9+7로 나눈 나머지를 구합니다.
난이도

어려움10점 중 9점

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

문제

Nocriz는 여느 사람처럼 삶에 꿈을 품은 학생이다. 안타깝게도 삶은 늘 쉽지 않아서, 꿈이 멀게만 느껴지고 그것을 좇기 힘든 때가 있다.

현실은 종종 사람들을 꿈을 좇는 길에서 벗어나게 하고, 눈앞에 있는 것에 만족하게 만든다. 노력을 내려놓으라는 유혹을 받은 Nocriz가 Artemisia에게 말했다. "그래도 꿈을 포기하면 안 되겠지?" Artemisia가 대답했다. "당연히 꿈을 쉽게 포기하면 안 되지! 바위에 짓눌릴 때까지 버텨, 버티라고!"

그날 밤 Nocriz는 아주 나쁜 꿈을 꾸었다. 꿈속에는 타원 모양의 바위가 있었고, 그는 타원 안의 모든 정수 점 (x,y)(x, y)에 대해 (x⊕y)33x−2y−1(x \oplus y)^{33} x^{-2} y^{-1}의 값을 모두 더한 합을 계산하라는 요청을 받았다. 계산은 109+710^9 + 7로 나눈 나머지에서 수행하며, ⊕\oplus는 비트 단위 XOR 연산이다.

타원은 여섯 정수 aa, bb, cc, dd, ee, ff로 정해진다. 타원을 E={(x,y)∣x,y∈Z, a(x−b)2+c(y−d)2+e(x−b)(y−d)≤f}E = \{(x, y) \mid x, y \in \mathbb{Z}, \, a (x - b)^2 + c (y - d)^2 + e (x - b) (y - d) \le f\}로 두자. 타원의 모든 점은 0<x,y<4⋅1060 < x, y < 4 \cdot 10^6을 만족하고, 타원에는 정수 점이 적어도 하나 있다고 보장된다. 이제 좌표를 109+710^9 + 7로 나눈 나머지로 보고 다음 합을 구하라. ∑(x,y)∈E(x⊕y)33x−2y−1\sum_{(x, y) \in E} (x \oplus y)^{33} x^{-2} y^{-1} 여기서 수를 나머지로 본다는 것은 z−1z^{-1}이 zz의 모듈러 역원이며, 모든 덧셈과 곱셈의 결과를 109+710^9 + 7로 나눈 나머지로 취한다는 뜻이다.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤1041 \le T \le 10^4)가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째이자 유일한 줄에 여섯 정수 aa, bb, cc, dd, ee, ff가 주어진다 (1≤a,c≤1001 \le a, c \le 100, −100≤e≤100-100 \le e \le 100, 1≤b,d≤4⋅1061 \le b, d \le 4 \cdot 10^6, 0≤f≤10150 \le f \le 10^{15}). 타원의 모든 점 (x,y)(x, y)는 0<x,y<4⋅1060 < x, y < 4 \cdot 10^6을 만족하며, 타원에는 정수 점이 적어도 하나 있다고 보장된다.

모든 테스트 케이스에 걸쳐 max⁡(x,y)∈Emax⁡(x,y)\max_{(x, y) \in E} \max(x, y)의 합은 4⋅1064 \cdot 10^6을 넘지 않는다고 보장된다.

출력

각 테스트 케이스마다 답을 나타내는 정수를 한 줄에 출력한다. 계산에서 좌표는 109+710^9 + 7로 나눈 나머지로 취급해야 한다는 점을 잊지 마라.

예제1

  1. 예제 1

    입력
    2
    2 2 1 3 -1 6
    13 19 11 17 6 1919
    
    예상 출력
    566081223
    453578240