CF1106F.Lunar New Year and a Recursive Sequence

提高+/省选-

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Lunar New Year is approaching, and Bob received a gift from his friend recently — a recursive sequence! He loves this sequence very much and wants to play with it.

Let f1,f2,…,fi,…f_1, f_2, \ldots, f_i, \ldots be an infinite sequence of positive integers. Bob knows that for i>ki \gt k, fif_i can be obtained by the following recursive equation:

f_i=left(f_i−1b_1cdotf_i−2b_2cdotcdotscdotf_i−kb_kright)bmodp,f\_i = \\left(f\_{i - 1} ^ {b\_1} \\cdot f\_{i - 2} ^ {b\_2} \\cdot \\cdots \\cdot f\_{i - k} ^ {b\_k}\\right) \\bmod p,

which in short is

f_i=left(prod_j=1kf_i−jb_jright)bmodp,f\_i = \\left(\\prod\_{j = 1}^{k} f\_{i - j}^{b\_j}\\right) \\bmod p,

where p=998 244 353p = 998\,244\,353 (a widely-used prime), b1,b2,…,bkb_1, b_2, \ldots, b_k are known integer constants, and x mod yx \bmod y denotes the remainder of xx divided by yy.

Bob lost the values of f1,f2,…,fkf_1, f_2, \ldots, f_k, which is extremely troublesome – these are the basis of the sequence! Luckily, Bob remembers the first k−1k - 1 elements of the sequence: f1=f2=…=fk−1=1f_1 = f_2 = \ldots = f_{k - 1} = 1 and the nn-th element: fn=mf_n = m. Please find any possible value of fkf_k. If no solution exists, just tell Bob that it is impossible to recover his favorite sequence, regardless of Bob's sadness.

农历新年即将来临,Bob最近收到了朋友送的一份礼物——一个递归序列!他非常喜爱这个序列,想要好好玩一玩。

设 f1,f2,…,fi,…f_1, f_2, \ldots, f_i, \ldots 是一个无限的正整数序列。Bob 知道:当 i>ki > k 时,fif_i 可由如下递推公式得到:

f_i=left(f_i−1b_1cdotf_i−2b_2cdotcdotscdotf_i−kb_kright)bmodp,f\_i = \\left(f\_{i - 1} ^ {b\_1} \\cdot f\_{i - 2} ^ {b\_2} \\cdot \\cdots \\cdot f\_{i - k} ^ {b\_k}\\right) \\bmod p,

简写为:

f_i=left(prod_j=1kf_i−jb_jright)bmodp,f\_i = \\left(\\prod\_{j = 1}^{k} f\_{i - j}^{b\_j}\\right) \\bmod p,

其中 p=998 244 353p = 998\,244\,353(一个被广泛使用的素数),b1,b2,…,bkb_1, b_2, \ldots, b_k 是已知的整数常数,且 x mod yx \bmod y 表示 xx 除以 yy 的余数。

Bob 不慎遗失了序列的前 kk 项 f1,f2,…,fkf_1, f_2, \ldots, f_k,这极为棘手——它们可是整个序列的基础!幸运的是,Bob 还记得序列的前 k−1k-1 项:f1=f2=…=fk−1=1f_1 = f_2 = \ldots = f_{k - 1} = 1,以及第 nn 项:fn=mf_n = m。请找出任意一个可能的 fkf_k 值。若不存在解,则只需告诉 Bob:无论他多么伤心,都无法恢复他最钟爱的这个序列。

输入格式

The first line contains a positive integer kk (1≤k≤1001 \leq k \leq 100), denoting the length of the sequence b1,b2,…,bkb_1, b_2, \ldots, b_k.

The second line contains kk positive integers b1,b2,…,bkb_1, b_2, \ldots, b_k (1≤bi<p1 \leq b_i \lt p).

The third line contains two positive integers nn and mm (k<n≤109k \lt n \leq 10^9, 1≤m<p1 \leq m \lt p), which implies fn=mf_n = m.

第一行包含一个正整数 kk(1≤k≤1001 \leq k \leq 100),表示序列 b1,b2,…,bkb_1, b_2, \ldots, b_k 的长度。

第二行包含 kk 个正整数 b1,b2,…,bkb_1, b_2, \ldots, b_k(1≤bi<p1 \leq b_i \lt p)。

第三行包含两个正整数 nn 和 mm(k<n≤109k \lt n \leq 10^9,1≤m<p1 \leq m \lt p),表示 fn=mf_n = m。

输出格式

Output a possible value of fkf_k, where fkf_k is a positive integer satisfying 1≤fk<p1 \leq f_k \lt p. If there are multiple answers, print any of them. If no such fkf_k makes fn=mf_n = m, output −1-1 instead.

It is easy to show that if there are some possible values of fkf_k, there must be at least one satisfying 1≤fk<p1 \leq f_k \lt p.

输出 fkf_k 的一个可能取值,其中 fkf_k 是满足 1≤fk<p1 \leq f_k \lt p 的正整数。若存在多个答案,输出任意一个即可。若不存在这样的 fkf_k 使得 fn=mf_n = m,则输出 −1-1。

容易证明:若存在满足条件的 fkf_k,则其中必至少有一个满足 1≤fk<p1 \leq f_k \lt p。

输入输出样例

  • 输入#1

    3
    2 3 5
    4 16

    输出#1

    4
  • 输入#2

    5
    4 7 1 5 6
    7 14187219

    输出#2

    6
  • 输入#3

    8
    2 3 5 6 1 7 9 10
    23333 1

    输出#3

    1
  • 输入#4

    1
    2
    88888 66666

    输出#4

    -1
  • 输入#5

    3
    998244352 998244352 998244352
    4 2

    输出#5

    -1
  • 输入#6

    10
    283 463 213 777 346 201 463 283 102 999
    2333333 6263423

    输出#6

    382480067

说明/提示

In the first sample, we have f4=f32⋅f23⋅f15f_4 = f_3^2 \cdot f_2^3 \cdot f_1^5. Therefore, applying f3=4f_3 = 4, we have f4=16f_4 = 16. Note that there can be multiple answers.

In the third sample, applying f7=1f_7 = 1 makes f23333=1f_{23333} = 1.

In the fourth sample, no such f1f_1 makes f88888=66666f_{88888} = 66666. Therefore, we output −1-1 instead.

在第一个样例中,我们有 f4=f32⋅f23⋅f15f_4 = f_3^2 \cdot f_2^3 \cdot f_1^5。因此,代入 f3=4f_3 = 4,可得 f4=16f_4 = 16。注意,可能存在多个答案。

在第三个样例中,令 f7=1f_7 = 1 可使得 f23333=1f_{23333} = 1。

在第四个样例中,不存在满足 f88888=66666f_{88888} = 66666 的 f1f_1。因此,我们输出 −1-1。

输入解题思路,AI测评打分。不知道怎么写?

首页