#P3980. 排队挤奶

排队挤奶

Description

Farmer John 的 N 头奶牛(2N100),方便起见仍然编号为 1N,正好闲得发慌。因此,她们发展了一个与 Farmer John 每天早上为她们挤牛奶的时候的排队顺序相关的复杂的社会结构。经过若干周的研究,Farmer John 发现这个结构基于两个关键特性。

首先,由于奶牛们的社会阶层,某些奶牛会坚持要在其他奶牛之前挤奶,基于她们的社会地位等级。比方说,如果奶牛3有最高的地位,奶牛2中等地位,奶牛5是低地位,那么奶牛3会最早挤奶,然后是奶牛2,最后是奶牛5。

然后,有些奶牛只允许她们在排队顺序中一个特定的位置挤奶。比方说,奶牛4可能坚持要在所有奶牛中的第二位挤奶。

幸运的是,Farmer John 总是能够以一种满足所有这些情况的顺序给他的奶牛们挤奶。

不幸的是,奶牛1最近生病了,所以 Farmer John 想要尽早给这头奶牛挤奶,使得她可以回到牛棚获得急需的休息。请帮助 Farmer John 求出奶牛 1可以在挤奶顺序中出现的最早位置。

Input Format

第一行包含 NM1M<N),和 K1K<N),表示 Farmer John 有 N 头奶牛,其中 M 头形成了社会阶层,K 头需要在挤奶顺序中处于一个特定的位置。下一行包含 M 个不同的整数 mi1miN)。在这一行出现的奶牛必须以与她们在这行出现的顺序相同的顺序进行挤奶。下面 K 行,每行包含两个整数ci1ciN)和 ��pi1piN),表示奶牛 ci 一定要在第 pi 位进行挤奶。

输入数据保证在这些限制之下,Farmer John 能够建立一个符合要求的挤奶顺序。

Output Format

输出奶牛1可以在挤奶顺序中出现的最早位置。
6 3 2
4 5 6
5 3
3 1
4

Source

CSPJ-重点算法班