#496. 自动式乘法

传统 1000 ms 1024 MiB
标准 IO
Special Judge dd 标签

题目描述

有一个长度为 n=105n=10^5 的序列 a0,a1,,an1a_0, a_1, ⋯, a_{n-1} ,初始时 a0=A,a1=B,a2=a3==an1=0a_0=A, a_1=B, a_2=a_3=⋯=a_{n-1}=0

你可以进行两种操作至多共 5858 次:

  1. + i j k :令 ak=ai+aja_k=a_i+a_j

  2. < i j k :令 ak=[ai<aj]a_k=[a_i<a_j]

在你的操作中,都应该满足 0i,j,k<n0\le i,j,k\lt n 且每次操作完后序列 aa 中所有数字都不超过 2×10182\times 10^{18}

你需要构造一种操作序列使得执行完所有操作后 a2=A×Ba_2=A\times B 并输出你的所有操作。

[expr][expr] 代表取表达式 exprexpr 的布尔值,例如 [1<2]=1[1<2]=1[1<1]=[2<1]=0[1<1]=[2<1]=0

输入格式

第一行输入两个整数 A,B(0A,B109)A,B(0\leq A,B\leq 10^9)

输出格式

第一行,输出一个整数 m(0m58)m(0\le m \le 58) 代表操作数。

22m+1m+1 行按照两种操作的格式输出你进行的操作。

任何满足题目要求的答案都会被判做正确的

样例

输入样例

3 3

输出样例

4
< 2 0 3
+ 2 0 2
+ 2 1 2
+ 2 0 2

提示
在样例中,序列 aa 的变化如下:
[3,3,0,1,...][3,3,0,1,...]
[3,3,3,1,...][3,3,3,1,...]
[3,3,6,1,...][3,3,6,1,...]
[3,3,9,1,...][3,3,9,1,...]