만드는 중입니다

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

거듭제곱의 합 2

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

요약
각 질의마다 a, b, d가 주어질 때 k가 a부터 b까지일 때의 k^d 합을 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

QQ개의 줄에 걸쳐 다음 쿼리를 해결하는 프로그램을 작성하시오.

  • aa bb dd : (∑k=abkd)mod  (109+7)\left(\sum_{k=a}^{b} k^d\right)\mod\left(10^9+7\right)의 값을 출력한다.

입력

첫 줄에 쿼리의 개수 QQ가 주어진다.

다음 QQ개의 줄에는 위 문제의 쿼리가 한 줄에 하나씩 주어진다.

출력

QQ개의 줄에 각 쿼리의 정답을 입력 순서대로 출력한다.

제한

입력으로 주어지는 모든 수는 정수이다.

1≤Q≤1061\leq Q\leq 10^6, 1≤a≤b≤1091\leq a\leq b\leq 10^9, 0≤d≤1050\leq d\leq 10^5

모든 쿼리의 dd의 합은 10610^6을 넘지 않는다.

예제1

  1. 예제 1

    입력
    5
    1 100 1
    50 100 2
    1000 9999 3
    1000000000 1000000000 100000
    100000000 999999999 0
    
    예상 출력
    5050
    297925
    507255250
    183133701
    900000000