#P17451. PM8282 无法区分的房间

PM8282 无法区分的房间

题目描述

你身处一个由若干圆形房间和弯曲通道组成的迷宫。每条通道连接两个房间,并且可以双向通行。所有房间的外观完全相同,各入口在房间圆周上等距排列,因此进入一个房间后,你只能知道这个房间连接了多少条通道。

对于每个房间,所有通道按照顺时针顺序排列。由于通道十分曲折,当你从一条通道到达另一个房间时,你无法知道自己的绝对朝向,但你仍然能够根据“从进入的通道开始顺时针数第几条”来选择下一条通道。

你知道完整迷宫地图,但不知道自己最初在哪个房间,也不知道初始朝向。你可以不断行走,记录经过房间的度数以及每次选择的相对通道编号,希望最终唯一确定最初的房间。

然而,有些房间无论采用怎样的行走策略都无法区分。对于每个房间 ii,求有多少个其他房间与它无法区分。

输入格式

第一行一个整数 NN,表示房间数量,房间编号为 0,1,,N10,1,\ldots,N-1

接下来 NN 行描述各个房间。第 ii 行首先给出整数 did_i,表示与房间 ii 相连的通道数量;随后给出 did_i 个整数,表示相邻房间编号,并且严格按照这些通道在房间中顺时针出现的顺序给出。

di=0d_i=0 时,该行只有一个整数 0

输出格式

第一行输出整数 NN

第二行输出 NN 个整数,其中第 ii 个整数表示除房间 ii 自身以外,与房间 ii 无法区分的房间数量。

数据范围

  • 1N501\le N\le 50
  • 每个房间的度数不超过 N1N-1
  • 不存在自环和重边;
  • 若房间 ii 与房间 jj 相连,则 jj 一定出现在 ii 的邻接表中,ii 也一定出现在 jj 的邻接表中;
  • 输入中每个房间的邻接表顺序具有意义,表示顺时针顺序。

样例 1

输入

4
3 1 2 3
1 0
1 0
1 0

输出

4
0 2 2 2