Logo 邂逅编程之美

UOJ

时间限制:2 s 空间限制:512 MB
Statistics

有 SPJ 的题可能是构造题。

题目描述

给定一个包含 $n$ 个排列的序列 $x_1,x_2,\cdots,x_n$,排列 $x_i$ 是由 $1\sim m $ 的整数组成的。

你需要找到一个 $1\sim n$ 的排列 $p_1,p_2,\cdots,p_n$。令 $y_i=x_{p_i}$,则 $y_1,y_2,\cdots,y_n$ 满足如下性质:

对于任意 $1\le i

输入格式

从文件 $\texttt{perm.in}$ 中读入数据。

本题有多组数据。

第一行一个正整数 $T$,表示数据组数。

对于每组数据,第一行两个正整数 $n, m$,接下来 $n$ 行,第 $i$ 行输入一个 $1\sim m$ 的排列表示 $x_i$。

输出格式

输出到文件 $\texttt{perm.out}$ 中。

输出 $T$ 行,第 $i$ 行表示第 $i$ 组数据的答案。如果无解输出 $-1$,否则输出排列 $p$,为 $n$ 个 $1$ 到 $n$ 的数组,由空格分隔。

样例 1 输入

2
4 4
1 2 3 4
2 4 3 1
1 4 2 3
3 4 2 1
5 4
1 2 4 3
1 4 3 2
4 3 2 1
1 4 2 3
3 4 2 1

样例 1 输出

-1
1 4 2 3 5

样例 2

见选手目录下的 $\text{perm2.in}$$\text{perm2.ans}$

数据范围与提示

$1 \leq T \leq 5,1 \leq n\times m \leq 10^6$

子任务编号 分数 特殊性质
$1$ $15$ $n\times m \leq 2000,n \leq 20$
$2$ $10$ $n\times m \leq 4000$
$3$ $10$ $n\times m \leq 10^5,n \leq 300$
$4$ $10$ $n\times m \leq 10^5,m \leq 300$
$5$ $15$ $n \leq 2000$
$6$ $40$

如果对于所有有解的数据,回答正确。并且对于部分(或所有)无解的数据,输出一个合法的 $1\sim n$ 的排列代替 $-1$,则可以获得该测试点 $40\%$ 的分数。

显然本题不应该下发 checker。