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$ | 无|