出边排序 2

Luogu
IDLGB3852
Time1000ms
Memory512MB
DifficultyP2
给定一个 $n$ 个点 $m$ 条边的有向图 $G$,结点编号从 $1$ 至 $n$,每个结点有一个权值,结点 $i$ 的权值是 $w_i$。对于 $u = 1, 2, 3, \dots n$,依次完成如下要求: 对于 $u$ 的所有出边(即从 $u$ 出发的边),按照**权值从小到大**的顺序输出出边所指向的节点编号。如果两个点的权值相同,先输出编号较小的。 **依次完成**的含义是,先按顺序输出 $u = 1$ 的出边所指向的点的编号,再按顺序输出 $u = 2$ 的出边所指向的点的编号……最后按顺序输出 $u = n$ 的出边所指向的点的编号。 ## Input **本题单测试点内有多组数据**。 数据的第一行是一个整数 $T$,表示数据的组数。 对于每组数据的格式如下: 第一行是两个整数,分别表示点的个数 $n$ 和边的个数 $m$。 第二行有 $n$ 个整数 $w_1,w_2,\cdots,w_n$,表示每个节点的权值。 接下来 $m$ 行,每行两个整数 $u, v$,表示一条由 $u$ 指向 $v$ 的边。 保证每组数据内不存在重边。 ## Output 对于每组数据: 输出 $n$ 行,每行若干个用空格隔开的整数。第 $i$ 行输出节点 $i$ 的出边所指向的节点编号。 **注意,如果一个结点不存在出边,你同样需要输出一个空行**。 [samples] ## Note ### 数据规模与约定 对于全部的测试点,保证 $1 \leq T, n, m \leq 5 \times 10^5$,$1 \leq w_i \leq n$,但同时各测试点的 $n$ 与 $m$ 之和均不超过 $5 \times 10^5$,即 $\sum n, \sum m \leq 5 \times 10^5$。且 $1 \leq u, v \leq n$,每组数据内不存在重边。 ### 提示 请注意大量读入输出对程序效率造成的影响。
Samples
Input #1
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
Output #1
2 3

1 2
1 2 3
1 2 3
1 2 3
API Response (JSON)
{
  "problem": {
    "name": "出边排序 2",
    "description": {
      "content": "给定一个 $n$ 个点 $m$ 条边的有向图 $G$,结点编号从 $1$ 至 $n$,每个结点有一个权值,结点 $i$ 的权值是 $w_i$。对于 $u = 1, 2, 3, \\dots n$,依次完成如下要求:   对于 $u$ 的所有出边(即从 $u$ 出发的边),按照**权值从小到大**的顺序输出出边所指向的节点编号。如果两个点的权值相同,先输出编号较小的。 **依次完成**的含义是,先按",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3852"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定一个 $n$ 个点 $m$ 条边的有向图 $G$,结点编号从 $1$ 至 $n$,每个结点有一个权值,结点 $i$ 的权值是 $w_i$。对于 $u = 1, 2, 3, \\dots n$,依次完成如下要求:  \n对于 $u$ 的所有出边(即从 $u$ 出发的边),按照**权值从小到大**的顺序输出出边所指向的节点编号。如果两个点的权值相同,先输出编号较小的。\n\n**依次完成**的含义是,先按...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments