P0548

[Poi2003]Treasure

[Poi2003]Treasure

Byteasar 国王把他所有的财宝都藏在了他城堡里的一个秘密地点。无论如何,当他外出征战时,他害怕如果战死以后财宝将会永远丢失。因此他选择了一些可以信任的守卫,然后告诉了他们每个人一点关于财宝藏匿地点的信息,之后命令他们去守卫位于城堡地下的地下室,并且不断巡逻,遵守告诉他们的右手原则。

地下室有很多房间,由走廊连接而成。走廊互相都不交叉,没有两条走廊连接同样的两个房间。右手原则规定:每个守卫在进入一个房间以后,要由他进来的那条走廊右边的那一条离开。每个守卫都被安排了不同的开始地点和进入走廊,有的时候多个守卫走进同一个房间是允许的。

国王知道,直到他牺牲和归来之前,他的守卫都会足够忠诚地执行他的命令。但是,他害怕当若干个守卫在同一个房间聚会时,他们会分享各自知道的信息:守卫都是很慷慨的,他们会分享自己所知道的所有信息;但是如果两个守卫在走廊里相遇,他们不会对对方说任何东西。

国王想知道当他从战场归来时,他的财宝是否还能安全可靠。他想知道有哪些守卫可能得到所有的财宝信息。

输入格式

第一行一个整数 nn,表示地下室的房间数,房间编号 11 到 nn。

接下来 nn 行每行描述一个房间:第 i+1i+1 行首先是一个数 kik_i,表示所有和第 ii 个房间连接的走廊数;接下来 2ki2k_i 个整数,每两个数描述一条走廊,第一个数为走廊另一头的房间编号,第二个数为走廊的长度。走廊都是双向的,即如果有一条 aa 到 bb 的长度为 ll 的走廊,那么肯定对应地有一条从 bb 到 aa 的长度为 ll 的走廊。所有走廊按顺时针方向给出。

接下来两个整数 kk 和 ll,kk 为守卫的个数,ll 为找到所有财宝需要知道的信息数目。守卫从 11 到 kk 编号,财宝信息从 11 到 ll 编号。

接下来 kk 行每行描述一个守卫:每行前两个数表示守卫的初始位置和他第一次要走到哪一个房间去;接下来一个整数 mim_i,表示这个守卫知道的信息数目;然后接着 mim_i 个整数,描述了他所知道的所有信息编号。

输出格式

第一行输出一个整数,表示知道所有财宝信息的守卫的总数。

接下来每行一个数,表示这些守卫的编号,从小到大输出。

样例输入

4
3 2 3 3 4 4 1
2 1 3 3 1
3 4 3 1 4 2 1
2 1 1 3 3
3 4
1 4 2 2 3
3 1 2 1 2
3 4 2 3 4

样例输出

2
2
3

数据范围

  • 2≤n≤1002\le n\le 100;
  • 1≤ki≤n−11\le k_i\le n-1;
  • 每条走廊的长度是 11 到 100100 的整数;
  • 1≤k≤1001\le k\le 100;
  • 1≤l≤1001\le l\le 100;
  • 0≤mi≤l0\le m_i\le l。

来源与许可

本题为 POI 2003 试题「Treasure」,题面与测试数据整理自 BZOJ 2611。

样例 1

输入

4


3 2 3 3 4 4 1
2 1 3 3 1
3 4 3 1 4 2 1
2 1 1 3 3
3 4
1 4 2 2 3
3 1 2 1 2
3 4 2 3 4

输出

2
2
3