loj#P3316. 「ZJOI2020」密码
「ZJOI2020」密码
题目描述
Bob 喜欢 Alice。
Alice 和 Bob 想要进行加密通信,于是他们自己设计了一套加密算法进行身份验证。你知道这个加密算法并不可靠,并截获了 Alice 和 Bob 之间的信息。现在你想要恢复出 Alice 的密钥。
Alice 和 Bob 约定了一个大质数 ,一个随机范围值 和一个在 之间均匀随机生成的整数密钥 。其中 和 的值是公开的,而 的值只有 Alice 和 Bob 知道。
当 Bob 想要确认 Alice 的身份时,Bob 会生成 个在 之间均匀随机生成的 并发给 Alice。对于每个 ,Alice 会返回给Bob 模 的值。为了防止窃听,Alice 会给结果加上一个在 到 之间均匀随机生成的扰动。
即,Alice 会返回给 Bob 组形如 的等式,其中 为一个不公开的在 到 之间均匀随机生成的数, 为随机生成的数, 为公开的数。
你获得了 Alice 返回的这 组等式(即 个 和 ),你需要求出 的值。
输入格式
第一行输入一个整数 ,表示数据组数。
对于每组数据,第一行输入三个整数 。接下来 行,每行两个整数 。符号的含义和题面中相同。
输出格式
输出 行,对于每组测试数据,输出一个 到 之间整数表示答案。数据保证有解并且解唯一。
数据范围与提示
对于前 的数据,满足 。
对于前 的数据,满足 。
对于前 的数据,满足 。
对于前 的数据,满足 。
对于另外 的数据,满足 。
对于 的数据,满足 $10^{15} \le p \le 10^{18}, 50 \le m \le 2000, 1 \le err \le 0.01p, 1 \le T \le 5, 0 \le a_i, c_i \le p − 1$,保证 为素数。