#P6690. 一次函数
一次函数
题目描述
给定 个一次函数 ,其中 为形式幂级数的占位符。
从这 个中选出 个 (),定义集合 为 的若干次幂的乘积模 的值所构成的集合。即:
$$H=\left\{\prod_{i=1}^k g_i(x)^j\bmod x^2\middle|0 \leq a, b < p \right\} $$其中 是任意非负整数且对于每个 可以有不同的 。
需要注意的是, 始终在集合 中(而非 ),即使 也是如此。
给定 ,求出所有满足 的集合 的 的最小值。
若不存在 使得 ,输出 -1
。
所有运算均在模 意义下进行。
输入格式
第一行四个整数 。
接下来 行,每行两个整数 。
输出格式
第一行一个整数 ,表示答案。
若存在方案,接下来 行,每行两个整数 ,需满足
的顺序可任意。
1 997 603 648
200 61
1
1 140787
1 953 712 307
534 750
-1
3 7 6 5
3 4
5 6
4 6
2
2 5
1 20
提示
另有两组大样例与 checker,下载地址见附件。
要测试你某个测试点的答案,你需要在你本题目录下的命令行中执行:
<checker> <input‐file> <output‐file> <answer‐file> [<report‐file>]
其中:
<checker>
表示校验器可执行文件;<input‐file>
表示该测试点的输入文件,如func1.in
;<output‐file>
表示该测试点你的答案,如func1.out
;<answer‐file>
表示该测试点的答案文件(只需要提供输出的第一行),如func1.ans
;<report‐file>
为可选参数,如果没有给定该参数,校验器将输出至终端;否则将输出至该文件,如report1.txt
。
对于所有数据,,保证 为质数,,,。
详细的数据限制及约定如下(留空表示和上述所有数据的约定相同):
子任务编号 | 分值 | 特殊性质 | ||
---|---|---|---|---|