#P14858. [ICPC 2021 Yokohama R] It' s Surely Complex

    ID: 14775 远端评测题 24000ms 1024MiB 尝试: 0 已通过: 0 难度: 9 上传者: 标签>数学2021数论快速傅里叶变换 FFTICPC横浜

[ICPC 2021 Yokohama R] It' s Surely Complex

Description

如你所知,复数通常表示为实部与虚部之和。3+2i3 + 2i 就是这样一个例子,其中 33 是实部,22 是虚部,ii 是虚数单位。

给定一个质数 pp 和一个正整数 nn,你为本题编写的程序应输出所有满足以下条件的复数的乘积。

  • 实部和虚部均为小于或等于 nn 的非负整数。
  • 实部和虚部中至少有一个不是 pp 的倍数。

例如,当 p=3p = 3n=1n = 1 时,满足条件的复数是 11 (=1+0i= 1 + 0i)、ii (=0+1i= 0 + 1i) 和 1+i1 + i (=1+1i= 1 + 1i),这些数的乘积,即 1×i×(1+i)1 \times i \times (1 + i),等于 1+i-1 + i

Input Format

输入由单个测试用例组成,格式如下。

p np\ n

pp 是一个小于 5×1055 \times 10^5 的质数。nn 是一个小于或等于 101810^{18} 的正整数。

Output Format

在一行中输出两个整数,用一个空格分隔。当满足给定条件的所有复数的乘积为 a+bia + bi 时,第一个和第二个整数应分别为 amodpa \bmod pbmodpb \bmod p。这里,xmodyx \bmod y 表示介于 00y1y-1 之间(含)的整数 zz,使得 xzx - z 能被 yy 整除。

如题目描述部分所示,当 p=3p = 3n=1n = 1 时,要计算的乘积是 1+i-1 + i。然而,由于 1mod3=2-1 \bmod 3 = 2,因此在样例输出 1 中显示的是 2211

3 1
2 1
5 5
0 0
499979 1000000000000000000
486292 0