描述
我们给定一个由N个正整数组成的序列a=[a1,a2,...,aN],可以对其执行收缩操作。
一次收缩操作包括将相邻元素ai和ai+1替换为它们的差ai−ai+1。对于一个包含N个整数的序列,我们恰好可以执行N−1种不同的收缩操作,每次操作都会生成一个新的(N−1)个元素的序列。
确切地说,令con(a,i)表示从[a1,a2,...,aN]通过将元素ai和ai+1替换为单个整数ai−ai+1而得到的(N−1)个元素的序列:
$con(a, i) = [a_1, ..., a_{i - 1}, a_i - a_{i + 1}, a_{i + 2}, ..., a_N]$
对任何给定的包含N个整数的序列执行N−1次收缩操作显然会得到一个整数。
例如,按顺序对序列[12,10,4,3,5]执行收缩操作2、3、2和1会得到4,因为:
con([12,10,4,3,5],2)=[12,6,3,5]
con([12,6,3,5],3)=[12,6,−2]
con([12,6,−2],2)=[12,8]
con([12,8],1)=[4]
给定一个序列a1,a2,...,aN和一个目标数字T,问题是找到一个由N−1次收缩操作组成的序列,将其应用于原始序列可得到T。
输入
输入的第一行包含两个用空格分隔的整数:整数N(1≤N≤100,原始序列中整数的数量)和目标整数T(−10000≤T≤10000)。
接下来的N行包含起始序列:对于每个i(1≤i≤N),输入文件的第(i+1)行包含整数ai(1≤ai≤100)。
输出
输出应包含N−1行,描述一个收缩操作序列,该序列将原始序列转换为仅包含数字T的单个元素序列。输出文件的第i行应包含一个整数,表示要应用的第i次收缩操作。
你可以假设对于给定的输入,至少存在一个这样的收缩操作序列。
输入数据1
5 4
12
10
4
3
5
输出数据1
2
3
2
1
来源
CEOI 1998