#P5137. polynomial

polynomial

题目背景

Wolfycz 很喜欢多项式(雾

题目描述

Wolfycz 喜欢研究多项式,尤其喜欢研究 (a+b)n(a+b)^n 这样简单的问题,我们知道 (a+b)n=i=0n(ni)aibni(a+b)^n=\sum\limits_{i=0}^n\binom{n}{i}a^ib^{n-i},但是 Wolfycz 对这样的式子并不满足,于是他把所有的系数全部改成了 11,即 i=0naibni\sum\limits_{i=0}^na^ib^{n-i},但是 Wolfycz 发现自己太菜了,不会求答案,于是希望你来帮帮他。

UPD:请注意常数因子对程序运行效率的影响。

输入格式

第一行读入 TT,表示有 TT 组数据。

接下来每一行读入四个整数 n,a,b,pn,a,b,p

输出格式

TT 行,每行一个整数,表示 (i=0naibni)modp(\sum\limits_{i=0}^na^ib^{n-i})\bmod p 后的值。

5
12 78 35 317
35 57 19 193
94 31 75 571
64 80 14 857
74 16 42 751

254
24
283
796
407

提示

对于30%30\%的数据,T100,n,a,b,p105T\leqslant 100,n,a,b,p\leqslant 10^5

对于100%100\%的数据,T105,n,a,b,p1018T\leqslant 10^5,n,a,b,p\leqslant 10^{18}

UPD:不保证pp为质数!!!