CF995E.Number Clicker

省选/NOI-

通过率:0%

时间限制:5.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

Allen is playing Number Clicker on his phone.

He starts with an integer uu on the screen. Every second, he can press one of 3 buttons.

  1. Turn u→u+1(modp)u \to u+1 \pmod{p}.
  2. Turn u→u+p−1(modp)u \to u+p-1 \pmod{p}.
  3. Turn u→up−2(modp)u \to u^{p-2} \pmod{p}.

Allen wants to press at most 200 buttons and end up with vv on the screen. Help him!

艾伦正在手机上玩“数字点击”游戏。

屏幕上初始显示一个整数 uu。每一秒,他可以按下以下三个按钮之一:

  1. 将 uu 变为 u+1(modp)u+1 \pmod{p};
  2. 将 uu 变为 u+p−1(modp)u+p-1 \pmod{p};
  3. 将 uu 变为 up−2(modp)u^{p-2} \pmod{p}。

艾伦希望至多按 200 次按钮,最终使屏幕上显示 vv。请帮他实现!

输入格式

The first line of the input contains 3 positive integers: u,v,pu, v, p (0≤u,v≤p−10 \le u, v \le p-1, 3≤p≤109+93 \le p \le 10^9 + 9). pp is guaranteed to be prime.

输入的第一行包含 3 个正整数:u,v,pu, v, p(0≤u,v≤p−10 \le u, v \le p-1,3≤p≤109+93 \le p \le 10^9 + 9)。保证 pp 是质数。

输出格式

On the first line, print a single integer ℓ\ell, the number of button presses. On the second line, print integers c1,…,cℓc_1, \dots, c_\ell, the button presses. For 1≤i≤ℓ1 \le i \le \ell, 1≤ci≤31 \le c_i \le 3.

We can show that the answer always exists.

第一行输出一个整数 ℓ\ell,表示按钮按压次数。
第二行输出 ℓ\ell 个整数 c1,…,cℓc_1, \dots, c_\ell,表示每次按压的按钮编号。
对每个 1≤i≤ℓ1 \le i \le \ell,均有 1≤ci≤31 \le c_i \le 3。

可以证明答案恒存在。

输入输出样例

  • 输入#1

    1 3 5

    输出#1

    2
    1 1
  • 输入#2

    3 2 5

    输出#2

    1
    3

说明/提示

In the first example the integer on the screen changes as 1→2→31 \to 2 \to 3.

In the second example the integer on the screen changes as 3→23 \to 2.

在第一个例子中,屏幕上的整数变化过程为 1→2→31 \to 2 \to 3。

在第二个例子中,屏幕上的整数变化过程为 3→23 \to 2。

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

首页