题目要求给排列中的每个数字前面加上正号或负号,使得整个表达式的值等于给定的 x。注意到排列中的数字均为 1~n,故它们的总和为
S=1+2+⋯+n=2n(n+1)
设正号部分的和为 P,负号部分的和为 N,则有:
小红拿到了一个长度为 n ,由整数构成的排列 {a1,a2,...,an} ,她希望你给每个元素前面均标记一个符号:正号′+’或负号′−’,使得所有元素之和等于 x 。你能帮帮她吗?
长度为 n 的排列是由 1~ n 这 n 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,{2,3,1,5,4} 是一个长度为 5 的排列,而{1,2,2}和{1,3,4}都不是排列,因为前者存在重复元素,后者包含了超出范围的数。每个元素恰好出现 1 次。
第一行输入两个正整数 n,x(1 ≤ n ≤ 10^5;0 ≦x≦ 10^9)代表排列的长度、要求的和。
第二行输入 n 个两两不同的正整数 a1,a2,...,an(1≦ai≦n)代表小红拿到的排列。
如果无解,请输出 −1 。
否则输出一个长度为 n,仅由 ′+′和 ′−′两种符号组成的字符串,第 i 个符号代表所给定的排列中,第 i 个元素前面的符号。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
3 0
1 3 2
输出
-+-
说明
−1+3−2=0,合法。
输出 “+−+” 也是可以的。
输入
4 11
3 1 4 2
输出
-1