Problem7546--等差数列

7546: 等差数列

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

给定一个长度为 $n$ 的正整数数列 $a_1,a_2,…,a_n$ 和一个正整数 $k$。
你可以对数列进行以下两种操作:
  • + i x,增加操作,将 $a_i$ 的值增加 $x\ (x≥1)$。
  • - i x,减少操作,将 $a_i$ 的值减少 $x\ (x≥1)$。
要求:在任何时候,你都需要保证每个 $a_i$ 的值都是正整数。
请你使用尽可能少的操作次数,使得数列能够满足:对于所有 $i\ (1≤i<n),\ a_{i+1}−a_i=k$ 均成立。
请你输出所需要的最少操作次数以及对应的具体操作方案。

Input

第一行包含两个整数 $n,k$。
第二行包含 $n$ 个整数 $a_1,a_2,…,a_n$。

Output

第一行输出一个整数 $p$,表示所需要的最少操作次数。
接下来 $p$ 行,用来输出具体操作方案,每行输出一个具体操作 + i x 或 - i x。你需要保证输出的 $i$ 和 $x$ 均为正整数,且 $1≤i≤n$。
如果最少操作次数的方案不唯一,则输出任意一种方案均可。

Constraints

前 $3$ 个测试点满足 $1≤n≤7$。
所有测试点满足 $1≤n≤1000,\ 1≤k≤1000,\ 1≤a_i≤1000$。

Sample 1 Input

4 1
1 2 1 5

Sample 1 Output

2
+ 3 2
- 4 1

Sample 2 Input

4 1
1 2 3 4

Sample 2 Output

0

Sample 3 Input

7 1
1 1 2 3 4 5 6

Sample 3 Output

6
+ 2 1
+ 3 1
+ 4 1
+ 5 1
+ 6 1
+ 7 1

Source/Category