UVA521 Gossiping

题目描述

某镇拥有自己的公交系统。公交车按照环形方式开行,且每条线路至少有两个公交站,有时候多条线路会在同一个公交站交汇。当多名司机在同一个公交站会车时,他们会互相透露自己所知道的消息,这样在离开时,所有在此公交站闲聊的司机均知道了同样的消息。每名司机在每天的同一个时刻启动公交车,而且知道一些其他司机均不知道的消息。每辆公交车均按照固定的公交线路开行,有时候,可能会出现多名司机在同一条线路上开行的情况,只不过他们的初始站点不一样。所有公交车的运行都是高度同步的。对于任意公交线路,从一个公交站到达下一个公交站所需的时间都是一样的。公交系统总共拥有 $n(0<n<20)$条线路,$d(0<d<320)$ 名司机,$s(0<s<50)$ 个公交站,司机按照 $1$ 到 $d$ 的顺序进行编号,公交站按照 $1$ 到 $s$ 的顺序进行编号。司机闲聊俱乐部乐于知道是否存在这样一个时刻,在该时刻,所有司机都从其他司机那里知道了所有的消息。

输入格式

**本题有多组数据**。 每组测试数据的第一行包含以单个空格分隔的三个整数 $n,d,s$,其含义如前所述。接下来的 $2n$ 行包含 $n$ 条线路的描述,每条线路使用两行数据来描述。第一行是以单个空格相间隔的编号列表,表示在此线路上,按照公交车经过的顺序给出的公交站编号,公交车在经过线路的最后一个站后立即返回起始站点继续开行。第二行描述在此条公交线路上开行司机的始发情况,描述包括若干组数值对 $s_i$ 和 $d_i$,表示编号为 $d_i$ 的司机从编号为 $s_i$ 的公交站启动公交车。最后一组测试数据只包含一行数据`0 0 0`,该组数据不需处理。

输出格式

对于输入的每组数据,除了最后一组之外,如果存在某个时刻,所有司机都从其他司机那里知道了所有的消息,输出`Yes`,否则输出`No`。