UOJ Logo Universal Online Judge

UOJ

#62. 【UR #5】怎样跑得更快

附件下载 统计

大力水手问禅师:“大师,我觉得我光有力气是不够的。比如我吃菠菜可以让力气更大,但是却没有提升跑步的速度。请问怎样才能跑得更快?我试过吃白菜,没有效果。”

禅师浅笑,答:“方法很简单,不过若想我教你,你先看看这道UOJ Round的C题。”

p=9982443537×17×223+1,一个质数)。

给你整数 n,c,d。现在有整数 x1,,xnb1,,bn 满足 0x1,,xn,b1,,bn<p,且对于 1in 满足:

j=1ngcd(i,j)clcm(i,j)dxjbi(modp) 其中 vu(modp) 表示 vu 除以 p 的余数相等。gcd(i,j) 表示 ij 的最大公约数,lcm(i,j) 表示 ij 的最小公倍数。

q 个询问,每次给出 b1,,bn,请你解出 x1,,xn 的值。

输入格式

第一行四个整数 n,c,d,q。保证 n,q1

接下来 q 行,每行 n 个整数依次表示 b1,,bn。保证 0b1,,bn<p

输出格式

q 行,每行对给出的 b1,,bn,输出对应的 x1,,xn。如果有多组解输出任意一组即可。如果无解那么这一行只用输出一个整数 1

样例一

input

3 1 0 2
1 0 0
1 2 3

output

499122179 998244352 499122176
998244352 1 1

explanation

对于第一个询问,要满足的等式为:

{x1+x2+x31(modp)x1+2x2+x30(modp)x1+x2+3x30(modp)

样例二

见样例数据下载。

限制与约定

对于所有数据,nq3×1050c,d109

测试点编号 n q 其他
13=1c,d1000
2100=1c=d
310保证有唯一解
4
51000c=1,d=0
6保证有唯一解
7
8
91000=1保证有唯一解
10
11
1210c=d
13保证有唯一解
14
151053c=1,d=0
16
17c=d
18
19
20

时间限制:1s

空间限制:256MB

后记

还没听完题,大力水手就嘶吼着:“太难了我不会我不会!”,飞快地跑掉了。

禅师看着大力水手消失的背影,叹了口气说:“你们这些人啊,每天就想做些大水题,一碰到难题,跑得不知道比谁都快。”

后来大力水手把UOJ Round的C题题面贴在了汽车的后挡风玻璃上,人类从此掌握了光速旅行的正确方式。

下载

样例数据下载