U423287 排列

题目背景

**时间限制:** 1.0 秒 **空间限制:** 512 MB 注:本题采用 `Special Judge` 对选手答案进行自定义判题。为了方便大家练习,我们将给出判题器报错的具体信息所代表的含义,练习过程中将鼠标移动至评测点的 UI 即可浮现对应的报错信息。 - `invalid output.` 非法输出,输出存在非整数或者超出 `int` 范围的整数。 - `invalid permutation.` 当判定有解输出序列时,不是一个 $1\sim n$ 的合法排列。 - `invalid testcase number.` 输出的数据组数非法。 - `wrong answer on the existence of solution.` 一组数据的有解/无解性质判断错误。 - `wrong answer on the size of permutation.` 当判定有解输出序列时,输出序列规模有误。 - `wrong answer on the permutation.` 当判定有解输出序列时,输出序列不满足输入的条件限制。 - `Answer correct.` 本组测试点正确。

题目描述

现在有一个排列 $a$ ( $1$ 到 $n$ 只出现了一次的数组),$k$ 个限制,每个限制有两个数字 $p$ 和 $x$ ,表示下标小于等于 $p$ 的数字中,值小于等于 $a_p$ 的恰好为 $x$ 个。即满足 $a_i\le a_p$ 且 $i\le p$ 的 $i$ 的数量恰好是 $x$ 个。 现在请你构造出这个 $a$ 数组,如果有多种构造方式,输出任意一种,如果构造不出来,请输出 $-1$ 。

输入格式

从标准输入读入数据。 第一行一个整数 $T$ ,表示有 $T$ 组数据。 之后每组数据第一行两个整数 $n,k$ ,表示有 $n$ 个数字,$k$ 组限制。 之后的 $k$ 行,每一行有两个数字 $p$ 和 $x$ ,表示下标小于等于 $p$ 的数字中,值小于等于 $a_p$ 的恰好为 $x$ 个,保证每个限制条件中的 $p$ 各不相同。

输出格式

输出到标准输出。 输出共计 $T$ 行。对于每组数据,输出 $n$ 个整数,代表你构造出来的 $a$ 数组。如果有多种构造方式,输出任意一种。如果构造不出来,请输出 $-1$ 。

说明/提示

### 样例 1 解释 在有解的情况下,输出任意一种正确答案即可。对于样例 1 当中的第一组数据,输出 `1 2 5 3 4` 或 `1 2 3 5 4` 或其他满足两组限制条件的排列都是正确的。第二组数据无论如何也无法满足要求,故输出一行 `-1` 即可。 ### 数据范围 对于全部数据,保证 $1\le k,p\le n,~1\le x,n\le 10^5,~\sum n\le 5\times 10^5$ 。 | 子任务编号 | 分值 | 数据范围 | 其他限制 | | :----: | :---: | :-----:|:-----: | | 1 | 20 | $T\le 10,~n\le 9$ |无 | | 2 | 30 |$T\le 10,~n\le 2000$ | 无 | | 3 | 10 | $\sum n\le 5\times 10^5$ | $p\le x$| | 4 | 40 | $\sum n\le 5\times 10^5$ | 无|