#P16139. 阶乘(factorial)

阶乘(factorial)

题目描述

已知两个正整数 a,ba,b 满足 a+b=ma+b=m,求 (a!+b)modp(a!+b)\bmod p 的最大值,其中 m,pm,p 给定。

你需要在 40MiB40\operatorname{MiB} 的空间限制和 2s2\operatorname{s} 的时间限制下解决 TT 个这样的问题。

输入格式

第一行输入一个正整数 TT,表示问题个数。

i+1 (1iT)i+1\ (1\le i\le T) 行,每行输入两个整数 m,pm,p,表示第 ii 个问题。

输出格式

输出 TT 行,第 i (1iT)i\ (1\le i\le T) 行输出一个整数,表示第 ii 个问题的答案。

2
3 5
4 7
3
4

提示

样例解释

对于第 11 个问题,有 a=1,b=2a=1,b=2a=2,b=1a=2,b=1,此时 (a!+b)modp=3(a!+b) \bmod p=3

对于第 22 个问题:

  • 如果 a=1,b=3a=1,b=3,那么 (a!+b)modp=4(a!+b)\bmod p=4
  • 如果 a=2,b=2a=2,b=2,那么 (a!+b)modp=4(a!+b)\bmod p=4
  • 如果 a=3,b=1a=3,b=1,那么 (a!+b)modp=0(a!+b)\bmod p=0

所以答案是 44

数据范围

对于所有测试数据,保证:

  • 1T1061\le T\le 10^6
  • 2mp100002\le m\le p\le 10000

::cute-table{tuack} |测试点编号|pp\le|TT\le| |:-:|:-:|:-:| |11|1010|4545| |22|100100|49504950| |3,43,4|1000010000|10001000| |5,65,6|30003000|10610^6| |7107\sim10|1000010000|^|