#P1145. 领队(lead)

领队(lead)

题目描述

Farmer John 正在为他的奶牛们雇用一位新的牛群领队。为此,他面试了 NN2N1052\le N\le 10^5)头奶牛来担任该职位。在面试第 ii 个候选牛后,他会为候选牛分配一个 11CC1C1091\le C\le 10^9)范围内的整数「牲任力」分数 cic_i,与她们的领导能力相关。

由于 Farmer John 面试了如此多的奶牛,他没能记得所有奶牛的牲任力分数。然而,他确实记得 QQ1Q<N1\le Q<N)对数字 (aj,hj)(a_j,h_j),其中奶牛 hjh_j 是第一头比奶牛 11aja_j 拥有严格更高牲任力分数的奶牛(所以 1aj<hjN1\le a_j<h_j\le N)。

Farmer John 现在告诉你序列 c1,,cNc_1,\ldots,c_N (其中 ci=0c_i=0 表示他忘记了奶牛 ii 的牲任力分数)和 QQ(aj,hj)(a_j,h_j)。帮助他求出与此信息一致的最小字典序的牲任力分数序列,或者判断不存在这样的序列!如果一个分数序列比另一个分数序列于这两个序列不同的第一个位置上的奶牛分配了更小的分数,则这个分数序列的字典序更小。

每个测试点包含 TT1T201\le T\le 20)个独立的测试用例。输入保证所有测试用例的 NN 之和不超过 31053\cdot 10^5

输入格式

输入的第一行包含 TT,独立的测试用例的数量。每个测试用例描述如下:

  1. 第一行包含 NNQQCC
  2. 第二行包含序列 c1,,cNc_1,\ldots,c_N0ciC0\le c_i\le C)。
  3. 最后 QQ 行,每行包含一个数对 (aj,hj)(a_j,h_j)。输入保证同一测试用例内的所有 aja_j 各不相同。

输出格式

对于每个测试用例,输出一行,包含与 Farmer John 记忆一致的最小字典序牲任力分数序列,或者如果这样的序列不存在时输出 1−1

样例 #1

样例输入 #1

1
7 3 5
1 0 2 3 0 4 0
1 2
3 4
4 5

样例输出 #1

1 2 2 3 4 4 1

样例 #2

样例输入 #2

5
7 6 10
0 0 0 0 0 0 0
1 2
2 3
3 4
4 5
5 6
6 7
8 4 9
0 0 0 0 1 6 0 6
1 3
6 7
4 7
2 3
2 1 1
0 0
1 2
10 4 10
1 2 0 2 1 5 8 6 0 3
4 7
1 2
5 7
3 7
10 2 8
1 0 0 0 0 5 7 0 0 0
4 6
6 9

样例输出 #2

1 2 3 4 5 6 7
1 1 2 6 1 6 7 6
-1
1 2 5 2 1 5 8 6 1 3
-1

提示

样例解释 1

我们可以看到给定的输出满足所有 Farmer John 记得的数对。

  • max(c1)=1\max(c_1)=1c2=2c_2=21<21<2,故第一个数对是满足的
  • max(c1,c2,c3)=2\max(c_1,c_2,c_3)=2c4=3c_4=32<32<3,故第二个数对是满足的
  • max(c1,c2,c3,c4)=3\max(c_1,c_2,c_3,c_4)=3c5=4c_5=43<43<4,故第三个数对是满足的

存在一些其他的序列与 Farmer John 的记忆相一致,如

1 2 2 3 5 4 11\ 2\ 2\ 3\ 5\ 4\ 1
1 2 2 3 4 4 51\ 2\ 2\ 3\ 4\ 4\ 5

然而,其中没有序列比给定的输出字典序更小。

样例解释 2

在测试用例 33 中,由于 C=1C=1,唯一可能的序列是

1 11\ 1

然而,在这种情况下,奶牛 22 的分数并不比奶牛 11 高,因此我们无法满足条件。

在测试用例 55 中,a1a_1h1h_1 告诉我们奶牛 66 是第一头分数严格高于奶牛 1144 的奶牛。因此,奶牛 1166 的最高得分是奶牛 66,为 55。由于奶牛 77 的分数为 77,所以奶牛 77 是第一头比奶牛 1166 得分更高的奶牛。因此,第二个陈述「奶牛 99 是第一头比奶牛 1166 得分更高的奶牛」不能成立。

测试点性质

  • 测试点 33N10N \le 10Q,C4Q,C\le 4
  • 测试点 484-8N1000N\le 1000
  • 测试点 9129-12:没有额外限制。

样例3