CF2130B.Pathless

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个由数值 $ 0 、、 1 、、 2 $ 和一个整数 $ s $ 构成的数组 $ a_1, a_2, \ldots, a_n $。保证数组中至少有一个 $ 0 $,一个 $ 1 $ 和一个 $ 2 $。

爱丽丝想要从下标 11 开始向左或向右移动几步(每一步的距离为 11),最终达到点 nn。当爱丽丝移动的时候,她计算她经过的格子中的数值和,并且,她想要使得结束时的和恰好等于 ss。

正式的说,爱丽丝想要找到一个下标的序列 $ [i_1, i_2, \ldots, i_m] $,满足:

  • $ i_1 = 1 $ , $ i_m = n $ ;
  • 对于所有的 $ 1 \le j \le m $,条件 $ 1 \leq i_j \leq n $ 满足;
  • 对于所有的 $ 1 \leq j < m $,条件 $ |i_{j} - i_{j+1}| = 1 $ 满足;
  • $ a_{i_1} + a_{i_2} + \ldots + a_{i_m} = s $ 。

不过,鲍勃想要重新排列 $ a_1, a_2, \ldots, a_n $ 以防止爱丽丝达到她的目标。 你需要决定重新排列数组 $ a_1, a_2, \ldots, a_n $ 是否能够使得爱丽丝不能找到她的目标(下标)序列(就算爱丽丝足够聪明)。如果可行,你也需要输出重新排列后的数组 $ a_1, a_2, \ldots, a_n $。

输入格式

每一组数据包含多组测试。第一行包含数据组数 tt($ 1 \le t \le 10^3 $)。对于每一组测试数据的描述如下所示:

对于每组数据,
第一行包含了两个整数 nn 和 ss($ 3 \le n \le 50 ,, 0 \le s \le 1000 $)。

第二行包含了 nn 个整数 $ a_1, a_2, \ldots, a_n $,描述数组 aa($ 0 \le a_i \le 2 $)。

同题目描述所示,保证数组中至少有一个 $ 0 $,一个 $ 1 $ 和一个 $ 2 $。

输出格式

对于每一组测试数据,如果重新排列数组 aa 使得爱丽丝找不到她的目标序列,输出 nn 个整数,表示重新排列后的数组 aa。否则输出 −1-1。

每组数据用换行分隔。

输入输出样例

  • 输入#1

    6
    3 2
    0 1 2
    3 3
    0 1 2
    3 6
    0 1 2
    3 4
    0 1 2
    3 10
    0 1 2
    5 1000
    2 0 1 1 2

    输出#1

    0 1 2
    -1
    -1
    0 2 1 
    -1
    -1

说明/提示

输入输出样例 #1 解释

在第一组数据中,任何的重新排列都能使得爱丽丝无法达到她的目标。

在第二组数据中,无论如何怎么重新排列数组 aa,爱丽丝都能找到序列 $ [1,2,3] $ 作为她的目标序列。

在第三组数据中,没有一种重新排列的结果能够防止爱丽丝找到她的目标序列。举个例子,对于 $ a=[0,2,1] $,爱丽丝能够找到序列 $ [1,2,3,2,3] $ 作为她的目标序列。

输入解题思路,AI测评打分。不知道怎么写?

首页