발전 장치

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

요약
각 층 양 끝은 등차수열 충전 속력을 갖고 안쪽 모듈은 위층 두 모듈을 합산하는 피라미드 구조에서, (R, C) 모듈의 충전 속력을 여러 질의에 답한다.
난이도

보통10점 중 7점

유형
조합론, 수학, 동적 계획법, 정수론
정답자
아직 제출이 없습니다

문제

대학 졸업 직후 취업에 바로 성공한 김한양은 이제 LG전자 연구실에서 새로운 발전 장치를 개발하고 있다.

이 발전 장치는 아래의 [그림]과 같이 가로와 세로의 길이가 각각 11인 모듈들이 피라미드 모양으로 연결된 구조이다. 발전 장치는 총 NN층 높이로, 지면에 가장 가까운 11층부터 가장 먼 NN층까지 있다. 11층에는 NN개, 22층에는 N−1N - 1개, …\dots, NN층에 11개의 모듈이 일렬로 나열되어 있다. 발전 장치의 RR층의 CC번째 칸에 있는 모듈을 (R,C)(R, C)로 표현한다.

[그림]

각 층의 가장 왼쪽과 가장 오른쪽에 위치하는 모듈은 태양광을 이용하여 전기를 만드는 생산 모듈이다. 이때, NN층에는 생산 모듈 하나만 가운데에 있다. 생산 모듈은 태양과의 높이차에 영향을 받기 때문에 가로의 위치와 관계없이 세로인 층수가 높아질수록 전기를 더 많이 생성한다. 11층에 있는 생산 모듈의 충전 속력을 AA, 생산 모듈의 높이가 11씩 올라갈 때마다 증가하는 충전 속력의 변화량을 BB라 하면, 층수에 따른 생산 모듈의 충전 속력은 첫째항이 AA이고 공차가 양수 BB인 등차수열을 이룬다.

그 외의 모듈은 모두 합산 모듈로, 위층의 양옆에 있는 두 모듈의 전기량을 그대로 합산하여 가져온다. 즉, (R, C)(R,\ C)에 있는 합산 모듈의 충전 속력은 각각 (R+1, C−1)(R + 1,\ C - 1)과 (R+1, C)(R + 1,\ C)에 위치하는 두 모듈의 충전 속력의 합과 같다.

김한양은 이 발전 장치가 제대로 작동하는지 확인하기 위해 각 모듈의 충전 속력을 계산해 주는 프로그램이 필요하다. 발전 장치에 대해 주어진 정보를 바탕으로 이 프로그램을 한번 만들어 보자!

입력

첫 번째 줄에는 세 양의 정수 AA, BB, NN이 공백을 사이로 주어진다. (1≤A, B≤109; 1≤N≤2×106)(1 ≤ A,\ B ≤ 10^9;\ 1 ≤ N ≤ 2 \times 10^6)

두 번째 줄에는 테스트 케이스의 개수를 나타내는 정수 TT가 주어진다. (1≤T≤2×105)(1 ≤ T ≤ 2 \times 10^5)

이어서 TT개의 줄에 걸쳐서 두 양의 정수 RR, CC가 공백을 사이로 주어진다. (1≤R, C≤N; R+C≤N+1)(1 ≤ R,\ C ≤ N;\ R + C ≤ N + 1)

출력

각 테스트 케이스마다 (R,C)(R, C)에 위치한 모듈의 충전 속력을 109+710^9+7로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    1 2 4
    2
    1 2
    2 2
    
    예상 출력
    13
    10
    
  2. 예제 2

    입력
    200 200 40
    10
    18 14
    30 8
    34 7
    21 20
    15 8
    31 10
    9 32
    9 31
    16 25
    11 29
    
    예상 출력
    786076779
    909000
    6800
    4200
    593864979
    6200
    1800
    154800
    3200
    150600