CF1894B.Two Out of Three

入门

通过率:0%

时间限制:3.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

You are given an array a1,a2,…,ana_1, a_2, \ldots, a_n. You need to find an array b1,b2,…,bnb_1, b_2, \ldots, b_n consisting of numbers 11, 22, 33 such that exactly two out of the following three conditions are satisfied:

  1. There exist indices 1≤i,j≤n1 \leq i, j \leq n such that ai=aja_i = a_j, bi=1b_i = 1, bj=2b_j = 2.
  2. There exist indices 1≤i,j≤n1 \leq i, j \leq n such that ai=aja_i = a_j, bi=1b_i = 1, bj=3b_j = 3.
  3. There exist indices 1≤i,j≤n1 \leq i, j \leq n such that ai=aja_i = a_j, bi=2b_i = 2, bj=3b_j = 3.

If such an array does not exist, you should report it.

给你一个数组 a1,a2,…,ana_1, a_2, \ldots, a_n。你需要构造一个由数字 11、22、33 组成的数组 b1,b2,…,bnb_1, b_2, \ldots, b_n,使得以下三个条件中恰好有两个成立:

  1. 存在下标 1≤i,j≤n1 \leq i, j \leq n,满足 ai=aja_i = a_j,bi=1b_i = 1,bj=2b_j = 2。
  2. 存在下标 1≤i,j≤n1 \leq i, j \leq n,满足 ai=aja_i = a_j,bi=1b_i = 1,bj=3b_j = 3。
  3. 存在下标 1≤i,j≤n1 \leq i, j \leq n,满足 ai=aja_i = a_j,bi=2b_i = 2,bj=3b_j = 3。

如果不存在满足要求的数组 bb,则应报告无解。

输入格式

Each test contains multiple test cases. The first line contains a single integer tt (1≤t≤500)(1 \leq t \leq 500) — the number of test cases. Each test case is described as follows.

The first line of each test case contains an integer nn (1≤n≤100)(1 \leq n \leq 100) — the length of the array aa.

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤100)(1 \leq a_i \leq 100) — the elements of the array aa.

每个测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤5001 \leq t \leq 500)—— 测试用例的数量。每个测试用例的描述如下:

每个测试用例的第一行包含一个整数 nn(1≤n≤1001 \leq n \leq 100)—— 数组 aa 的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1001 \leq a_i \leq 100)—— 数组 aa 的元素。

输出格式

For each test case, print -1 if there is no solution. Otherwise, print b1,b2,…,bnb_1, b_2, \ldots, b_n — an array consisting of numbers 11, 22, 33 that satisfies exactly two out of three conditions. If there are multiple possible answers, you can print any of them.

对于每个测试用例,若无解,则输出 -1。否则,输出 b1,b2,…,bnb_1, b_2, \ldots, b_n —— 一个由数字 11、22、33 组成的数组,该数组恰好满足以下三个条件中的两个。若存在多个可能的答案,输出任意一个即可。

输入输出样例

  • 输入#1

    9
    6
    1 2 3 2 2 3
    7
    7 7 7 7 7 7 7
    4
    1 1 2 2
    7
    1 2 3 4 5 6 7
    5
    2 3 3 3 2
    3
    1 2 1
    9
    1 1 1 7 7 7 9 9 9
    1
    1
    18
    93 84 50 21 88 52 16 50 63 1 30 85 29 67 63 58 37 69

    输出#1

    1 2 3 1 1 1 
    -1
    3 2 2 1 
    -1
    2 1 2 1 3 
    -1
    1 1 2 2 1 2 2 3 3
    -1
    3 2 1 3 3 3 3 2 2 1 1 2 3 1 3 1 1 2

说明/提示

In the first test case, b=[1,2,3,1,1,1]b = [1, 2, 3, 1, 1, 1] satisfies condition 11 because for i=4i = 4, j=2j = 2: ai=aja_i = a_j, bi=1b_i = 1, and bj=2b_j = 2. It also satisfies condition 22 because for i=6i = 6, j=3j = 3: ai=aja_i = a_j, bi=1b_i = 1, and bj=3b_j = 3. However, it does not satisfy condition 33. In total, exactly two out of three conditions are satisfied.

在第一个测试用例中,b=[1,2,3,1,1,1]b = [1, 2, 3, 1, 1, 1] 满足条件 11,因为当 i=4i = 4、j=2j = 2 时:ai=aja_i = a_j,bi=1b_i = 1,且 bj=2b_j = 2。它也满足条件 22,因为当 i=6i = 6、j=3j = 3 时:ai=aja_i = a_j,bi=1b_i = 1,且 bj=3b_j = 3。然而,它不满足条件 33。总计,三个条件中恰好有两个被满足。

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

首页