QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 32 MB Puntuación total: 100

#14184. 猴子

Estadísticas

一棵树上有 $n$ 只猴子,编号为 $1$ 到 $n$。$1$ 号猴子用尾巴抓着一根树枝。其余的猴子要么被其他猴子抓住,要么抓住其他猴子,或者两者兼有。每只猴子可以使用两只手,每只手最多可以抓住另一只猴子(抓着它的尾巴)。从时刻 0 开始,每一秒都有一只猴子松开一只手。这可能会导致一些猴子掉落到地面上,掉落到地面上的猴子可以继续松开它们的手(掉落的时间忽略不计)。

编写一个程序:

  • 从标准输入读取猴子之间如何互相抓住以及它们松开手的顺序的描述,
  • 计算每只猴子掉落到地面上的时刻,
  • 将结果写入标准输出。

输入格式

第一行包含两个正整数 $n$ 和 $m$,$1 \le n \le 200\,000$,$1 \le m \le 400\,000$。其中 $n$ 表示猴子的数量,$m$ 表示我们观察猴子的时间(以秒为单位)。

接下来的 $n$ 行描述了初始状态。在第 $k+1$ 行($1 \le k \le n$)中,有两个整数,表示被 $k$ 号猴子抓住的猴子的编号。前一个数是被左手抓住的猴子编号,后一个数是被右手抓住的猴子编号。数字 $-1$ 表示该猴子的对应手是空闲的。

接下来的 $m$ 行表示对猴子的观察结果。在这些行中的第 $i$ 行($1 \le i \le m$)有两个整数。前一个数是猴子的编号,后一个数是它松开的手的编号(1 表示左手,2 表示右手),该动作发生在时刻 $i-1$。

输出格式

输出正好 $n$ 个整数,每行一个。第 $i$ 行的数字表示第 $i$ 只猴子掉落到地面上的时刻;如果该猴子在观察期间没有掉落到地面上,则输出 $-1$。

样例

样例输入 1

3 2
-1 3
3 -1
1 2
1 2
3 1

样例输出 1

-1
1
1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.