멀티팩토리얼

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

요약
최대 100,000개의 쿼리에 대해 N을 K씩 줄여 가며 곱한 멀티팩토리얼(N, N-K, N-2K, ...)을 998244353으로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

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

문제

백준 온라인 저지에는 n!!!⋯,!n!!! \cdots\\, !에 관련된 다양한 문제들이 있다. 그런데 사실 이러한 문제들에서 사용한 용법과는 달리, n!!!⋯,!n!!! \cdots\\, !이라는 기호는 nn에 팩토리얼을 여러 번 적용하라는 뜻이 아니다! 예를 들어, 더블 팩토리얼이라고도 불리는 n!!n!!은, 그 의미가 (n!)!(n!) !과는 다르게 사용되는 기호이다.

실제 더블 팩토리얼의 정의는 다음과 같다.

\[n!!=\begin{cases}n\cdot(n-2)\cdot(n-4)\cdots 5\cdot 3\cdot 1&(\text{odd } n)\\ n\cdot(n-2)\cdot(n-4)\cdots 6\cdot 4\cdot 2&(\text{even } n)\end{cases}\]

예를 들어, 6!!=6×4×2=486!!=6\times 4\times 2=48, 9!!=9×7×5×3×1=9459!!=9\times 7\times 5\times 3\times 1=945이다.

마찬가지로, n!!!=n(n−3)(n−6)⋯n!!!=n(n-3)(n-6)\cdots, n!!!!=n(n−4)(n−8)⋯n!!!!=n(n-4)(n-8)\cdots 등도 정의할 수 있다. nn을 kk로 나눈 나머지를 rr이라고 하면, 멀티팩토리얼의 정의는 다음과 같다.

\[n\overbrace{!!!\cdots\, !}^{k}=\begin{cases}n\cdot(n-k)\cdot(n-2k)\cdots r & (r \gt 0 ) \\ n\cdot(n-k)\cdot(n-2k)\cdots k& (r=0) \end{cases}\]

양의 정수 NN, KK가 주어지면 N!!!⋯,!⏞KN\overbrace{!!!\cdots\\, !}^{K}의 값을 구해보자. 단, 수가 매우 커질 수 있으므로 998,244,353998\\, 244\\, 353으로 나눈 나머지를 출력한다.

입력

첫째 줄에 쿼리의 수 QQ가 주어진다. (1≤Q≤100,0001\leq Q\leq 100\\, 000)

다음 QQ개의 줄에 걸쳐, 양의 정수 NN과 KK가 공백으로 구분되어 주어진다. (1≤N,K≤100,0001\leq N,K\leq 100\\, 000)

출력

각 쿼리마다 N!!!⋯,!⏞Kmod  998,244,353N\overbrace{!!!\cdots\\, !}^{K}\mod 998\\, 244\\, 353을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    6
    5 1
    6 2
    8 3
    2 3
    259 116
    70664 249
    
    예상 출력
    120
    48
    80
    2
    999999
    2025
    
  2. 예제 2

    입력
    3
    99694 35226
    81986 14174
    8592 740
    
    예상 출력
    1
    2
    3