만드는 중입니다

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

발전 장치

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

요약
가장자리 발전 모듈의 충전 속도가 등차수열을 이루는 피라미드에서, 질의마다 주어진 (R, C) 모듈의 값을 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

대학을 졸업하고 바로 취업에 성공한 김한양은 지금 LG전자 연구실에서 새로운 발전 장치를 개발하고 있다. 이 발전 장치는 아래 \[그림]과 같이 가로와 세로의 길이가 각각 11인 모듈들이 피라미드 모양으로 연결된 구조이다. 발전 장치는 총 NN층 높이이며, 지면에 가장 가까운 11층부터 가장 먼 NN층까지 있다. 11층에는 NN개, 22층에는 N−1N - 1개, ..., 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≤1091 ≤ A, B ≤ 10^9; 1≤N≤2×1061 ≤ N ≤ 2 \times 10^6) 두 번째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤2×1051 ≤ T ≤ 2 \times 10^5) 이어서 TT개의 줄에 두 양의 정수 RR, CC가 공백으로 구분되어 주어진다. (1≤R,C≤N1 ≤ R, C ≤ N; R+C≤N+1R + 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