luogu#B3852. 出边排序 2

出边排序 2

题目描述

给定一个 nn 个点 mm 条边的有向图 GG,结点编号从 11nn,每个结点有一个权值,结点 ii 的权值是 wiw_i。对于 u=1,2,3,nu = 1, 2, 3, \dots n,依次完成如下要求:
对于 uu 的所有出边(即从 uu 出发的边),按照权值从小到大的顺序输出出边所指向的节点编号。如果两个点的权值相同,先输出编号较小的。

依次完成的含义是,先按顺序输出 u=1u = 1 的出边所指向的点的编号,再按顺序输出 u=2u = 2 的出边所指向的点的编号……最后按顺序输出 u=nu = n 的出边所指向的点的编号。

输入格式

本题单测试点内有多组数据

数据的第一行是一个整数 TT,表示数据的组数。

对于每组数据的格式如下:
第一行是两个整数,分别表示点的个数 nn 和边的个数 mm
第二行有 nn 个整数 w1,w2,,wnw_1,w_2,\cdots,w_n,表示每个节点的权值。
接下来 mm 行,每行两个整数 u,vu, v,表示一条由 uu 指向 vv 的边。

保证每组数据内不存在重边。

输出格式

对于每组数据:
输出 nn 行,每行若干个用空格隔开的整数。第 ii 行输出节点 ii 的出边所指向的节点编号。

注意,如果一个结点不存在出边,你同样需要输出一个空行

2
3 4
1 2 3
1 3
1 2
3 2
3 1
3 9
1 2 3
1 3
2 3
3 3
1 2
2 2
3 2
1 1
2 1
3 1
2 3

1 2
1 2 3
1 2 3
1 2 3

提示

数据规模与约定

对于全部的测试点,保证 1T,n,m5×1051 \leq T, n, m \leq 5 \times 10^51win1 \leq w_i \leq n,但同时各测试点的 nnmm 之和均不超过 5×1055 \times 10^5,即 n,m5×105\sum n, \sum m \leq 5 \times 10^5。且 1u,vn1 \leq u, v \leq n,每组数据内不存在重边。

提示

请注意大量读入输出对程序效率造成的影响。