解法1

kk 日目がエイプリルフールだと仮定すると、正しい結果は aka_kbkb_k を入れ替えて計算した値になります。したがって、aka_kbkb_k を入れ替えて命令に従った時の結果が YY に一致するような kk をすべて出力します。

命令に従うことを、(x1)\begin{pmatrix}x\\ 1\end{pmatrix} に対して左から (aibi01)\begin{pmatrix}a_i& b_i\\ 0& 1\end{pmatrix} を掛けることだと言い換えると、 行列の累積積と、累積積の逆行列を事前に時間計算量 O(N)O(N) で計算しておけば、各 ii について、ii 日目がエイプリルフールだと仮定した時の正しい結果は O(1)O(1) で計算することができます。 1ai109<109+71\leq a_i\leq 10^9 < 10^9+7 であることから、逆行列は必ず計算することができます。

解法2

p0=1p_0 = 1pi=pi1ai(1iN)p_i = p_{i - 1}a_i (1\leq i\leq N)b0=Xb_0 = X とします。

すると、kk 日目がエイプリルフールだと仮定した時の正しい結果は

(bkaki=0k1pNbipi+akbkpNbkpk+i=k+1NpNbipi) mod (109+7)\displaystyle \left(\frac{b_k}{a_k}\sum_{i = 0}^{k - 1}\frac{p_Nb_i}{p_i} + \frac{a_k}{b_k}\frac{p_Nb_k}{p_k} + \sum_{i = k + 1}^{N}\frac{p_Nb_i}{p_i}\right)\ \mathrm{mod}\ (10^9 + 7)

です。事前に pip_i と、それを使った pNbipi\frac{p_Nb_i}{p_i} の部分を累積和として時間計算量 O(N)O(N) で求めておけば、各 ii について O(1)O(1) で計算することができます。