#P2426. Remainder

Remainder

题目描述

Coco 是一个聪明的男孩,擅长数学。但最近他被一个数学问题难住了:

给定三个整数 NNKKMM,现在你可以对 NN 进行以下四种运算之一:

N:=N+MN := N + M

N:=NMN := N - M

N:=N×MN := N \times M

N:=NmodMN := N \bmod M

运算的结果每次都会替换当前 NN 的值。

请你判断,是否存在一系列运算步骤,使得最后:

$[(\text{初始的 } N) + 1] \bmod K = (\text{当前的 } N) \bmod K$

如果存在,请输出使得上述条件成立的最小步骤数,以及对应的操作序列。

说明:模运算定义为:若 a=bq+ra = b \cdot q + r,且 q>0, 0r<qq > 0,\ 0 \leq r < q,则有 amodq=ra \bmod q = r

输入格式

输入包含若干组测试数据。每组一行,包含三个整数 N, K, MN,\ K,\ M,满足:

1000N1000-1000 \leq N \leq 1000

1<K10001 < K \leq 1000

0<M10000 < M \leq 1000

当遇到一行 0 0 0 时,表示输入结束。

输出格式

对每组输入,输出结果:

如果不存在解,输出 0(单独一行);

如果存在解,输出两行:

第一行输出最小操作步数;

第二行输出对应的操作序列(例如 +*-),按题意最小字典序优先。

2 2 2
-1 12 10
0 0 0
0
2
*+