#P16139. 阶乘(factorial)

    ID: 17680 远端评测题 2000ms 40MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>递推并查集排序分块洛谷比赛离线处理

阶乘(factorial)

题目描述

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

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

输入格式

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

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

输出格式

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

2
3 5
4 7
3
4

提示

样例解释

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

对于第 22 个问题:

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

所以答案是 44。

数据范围

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

  • 1≤T≤1061\le T\le 10^6;
  • 2≤m≤p≤100002\le m\le p\le 10000。

::cute-table{tuack} |测试点编号|p≤p\le|T≤T\le| |:-:|:-:|:-:| |11|1010|4545| |22|100100|49504950| |3,43,4|1000010000|10001000| |5,65,6|30003000|10610^6| |7∼107\sim10|1000010000|^|