CF1463E.Plan of Lectures
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Ivan is a programming teacher. During the academic year, he plans to give n lectures on n different topics. Each topic should be used in exactly one lecture. Ivan wants to choose which topic will he explain during the 1-st, 2-nd, ..., n-th lecture — formally, he wants to choose some permutation of integers from 1 to n (let's call this permutation q). qi is the index of the topic Ivan will explain during the i-th lecture.
For each topic (except exactly one), there exists a prerequisite topic (for the topic i, the prerequisite topic is pi). Ivan cannot give a lecture on a topic before giving a lecture on its prerequisite topic. There exists at least one valid ordering of topics according to these prerequisite constraints.
Ordering the topics correctly can help students understand the lectures better. Ivan has k special pairs of topics (xi,yi) such that he knows that the students will understand the yi-th topic better if the lecture on it is conducted right after the lecture on the xi-th topic. Ivan wants to satisfy the constraints on every such pair, that is, for every i∈[1,k], there should exist some j∈[1,n−1] such that qj=xi and qj+1=yi.
Now Ivan wants to know if there exists an ordering of topics that satisfies all these constraints, and if at least one exists, find any of them.
伊万是一名编程教师。在学年中,他计划讲授 n 个不同主题的 n 节课。每个主题恰好被使用一次。伊万需要确定第 1、第 2、……、第 n 节课分别讲授哪个主题——形式上,他需要选择一个 1 到 n 的排列(记为 q),其中 qi 表示第 i 节课所讲授的主题编号。
对于每个主题(除恰好一个主题外),均存在一个前置主题(对于主题 i,其前置主题为 pi)。伊万不能在讲授其前置主题之前讲授该主题。根据这些前置约束,至少存在一种合法的主题排序方案。
正确安排主题顺序有助于学生更好地理解课程内容。伊万还有 k 对特殊主题 (xi,yi),他知道:若主题 yi 的课程紧接在主题 xi 的课程之后进行,则学生对主题 yi 的理解效果会更好。因此,伊万希望满足所有这样的约束,即对每个 i∈[1,k],均存在某个 j∈[1,n−1],使得 qj=xi 且 qj+1=yi。
现在,伊万想知道是否存在一种满足所有上述约束的主题排序方案;如果存在,他还希望找出其中任意一种方案。
输入格式
The first line contains two integers n and k (2≤n≤3⋅105, 1≤k≤n−1) — the number of topics and the number of special pairs of topics, respectively.
The second line contains n integers p1, p2, ..., pn (0≤pi≤n), where pi is the prerequisite topic for the topic i (or pi=0 if the i-th topic has no prerequisite topics). Exactly one of these integers is 0. At least one ordering of topics such that for every i the pi-th topic is placed before the i-th topic exists.
Then k lines follow, the i-th line contains two integers xi and yi (1≤xi,yi≤n; xi=yi) — the topics from the i-th special pair. All values of xi are pairwise distinct; similarly, all valus of yi are pairwise distinct.
第一行包含两个整数 n 和 k(2≤n≤3⋅105,1≤k≤n−1),分别表示主题的数量和特殊主题对的数量。
第二行包含 n 个整数 p1, p2, ..., pn(0≤pi≤n),其中 pi 表示主题 i 的前置主题(若第 i 个主题没有前置主题,则 pi=0)。这些整数中恰好有一个为 0。至少存在一种主题排列顺序,使得对每个 i,第 pi 个主题都排在第 i 个主题之前。
接下来是 k 行,第 i 行包含两个整数 xi 和 yi(1≤xi,yi≤n;xi=yi),表示第 i 个特殊主题对中的两个主题。所有 xi 的值两两不同;同理,所有 yi 的值也两两不同。
输出格式
If there is no ordering of topics meeting all the constraints, print 0.
Otherwise, print n pairwise distinct integers q1, q2, ..., qn (1≤qi≤n) — the ordering of topics meeting all of the constraints. If there are multiple answers, print any of them.
如果不存在满足所有约束条件的主题排序方案,则输出 0。
否则,输出 n 个两两互异的整数 q1, q2, ..., qn(其中 1≤qi≤n),表示一个满足所有约束条件的主题排序方案。若存在多个可行解,输出任意一个即可。
输入输出样例
输入#1
5 2 2 3 0 5 3 1 5 5 4
输出#1
3 2 1 5 4
输入#2
5 2 2 3 0 5 3 1 5 5 1
输出#2
0
输入#3
5 1 2 3 0 5 3 4 5
输出#3
0
输入#4
5 4 2 3 0 5 3 2 1 3 5 5 2 1 4
输出#4
3 5 2 1 4
输入解题思路,AI测评打分。不知道怎么写?