#P9386. [THUPC 2023 决赛] 大纲

[THUPC 2023 决赛] 大纲

题目描述

小 I、小 O 和小 N 是 ION 大纲的编写者,小 I 负责给每个知识点定难度。

ION 大纲计划列入 nn 个知识点,其中小 I 按照自己的认识给其中部分知识点定好了难度,还有部分知识点没有定难度。

知识点之间有依赖关系,这个依赖关系恰好构成了一棵以 11 为根的外向树,知识点 xx 指向知识点 yy 表示 xx 依赖 yy依赖关系不具有传递性。

你需要告诉小 I 目前确定下来的难度是否合理。我们认为确定下来的难度是合理的当且仅当存在一个给所有未确定难度的知识点确定难度的方式,使得以下所有条件成立:

  • 每个知识点的难度都是非负整数;
  • 对于每个依赖其他知识点的知识点 xx,设 maxx\max_xxx 依赖的知识点中难度的最大值,则如果 xx 恰依赖一个难度为 maxx\max_x 的知识点,那么知识点 xx 的难度为 maxx\max_x,否则为 maxx+1\max_x+1对于不依赖其他知识点的知识点,没有其他限制。

输入格式

本题有多组测试数据。第一行一个整数 TT 表示测试数据组数,接下来依次读入每组测试数据。

对于每组测试数据,

  • 第一行一个整数 nn 表示知识点数量。
  • 第二行 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n,描述每个知识点的难度。若 ai=1a_i = -1 表示知识点 ii 未确定难度,否则知识点 ii 的难度确定为 aia_i
  • 接下来 n1n-1 行每行两个整数 u,vu,v,表示依赖关系构成的外向树中的一条有向边。

输出格式

对于每组测试数据输出一行:若难度是合理的,输出 Reasonable,否则输出 Unreasonable

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

Reasonable
Unreasonable

提示

样例 1 解释

对于第一组测试数据,将知识点 22 的难度定为 00 即满足条件。

对于第二组测试数据,无论如何指定知识点 22 的难度,知识点 11 的难度会产生矛盾。

数据规模与约定

对于所有测试数据,1T1051 \le T \le 10^52n1052 \le n \le 10^51ai109-1 \le a_i \le 10^91u,vn1 \le u,v \le n
保证单个测试点中所有测试数据的 nn 的和不超过 2×1052 \times 10^5,每组测试数据输入的所有边构成一棵以 11 为根的外向树。

后记

大纲发表了。若干天后,小 I 给 ION 比赛投题,却发现有人偷偷改了一笔难度表,导致他的题目超纲。于是小 I 只能把题投给 CPUHT。

题目来源

来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)决赛。

题解等资源可在 https://github.com/THUSAAC/THUPC2023 查看。