luogu#B4013. [语言月赛 202407] significance

[语言月赛 202407] significance

题目背景

从前有个荣光的王国,小 A 是里面的国王,他认为人活着需要有意义,所以今天他要赐予他的子民以意义。

题目描述

细心的小 A 发现,每个人的存在对于其他人来说都有着不可取代的意义。一个人的意义值定义为他的朋友朋友的朋友的个数。

小 A 的王国共有 nn 位居民,以 1,2,,n1, 2, \cdots, n 编号。每位居民分别有 xix_i 个朋友,现在小 A 想知道每位居民的意义值。

注意,朋友关系可能是单向的。即:有可能 aabb 当朋友,但 bb 不一定把 aa 当作朋友。同时,如果一个人的朋友的朋友中有自己,则这一部分的个数不统计。

时光荏苒,朋友的联系也会散去。而我们和一个人保持连接的方式就是记住,仅此而已。

输入格式

第一行一个整数 nn 表示小 A 王国的居民数。

接下来 nn 行每行 xi+1x_i + 1 个整数。第一个整数 xix_i 表示 ii 号居民有几个朋友,接下来 xix_i 个整数分别表示他的朋友的编号。

输出格式

一行 nn 个整数分别表示每位居民的意义值。

4
2 2 3
1 4
0
0

3 1 0 0

3
0
2 1 3
0

0 2 0

3
1 2
1 3
1 1

2 2 2

提示

样例 1 解释

  • 11 号居民认为他的朋友是 223333 认为自己没有朋友,但 22 认为自己有一个朋友 44, 所以 11 号居民的意义值是 33
  • 22 号居民认为他的朋友是 4444 没有朋友,所以 22 号居民的意义值是 11
  • 33 号和 44 号居民都认为自己没有朋友,所以他们的意义值是 00

样例 2 解释

  • 11 号和 33 号居民认为他们没有朋友,所以他们的意义值是 00
  • 22 号居民的朋友是 11331,31,3 都认为自己没有朋友,所以 22 号居民的意义值是 22

样例 3 解释

  • 11 号居民认为他的朋友是 22, 22 认为他的朋友是 33,所以 11 号居民的意义值是 22
  • 22 号居民的朋友是 3333 认为自己的朋友是 11,所以 22 号居民的意义值是 22
  • 33 号居民的朋友是 1111 认为自己的朋友是 22,所以 33 号居民的意义值是 22

数据范围

  • 对于 20%20\% 的数据,xi1x_i \le 1
  • 对于另外 20%20\% 的数据,除 x1=n1x_1 = n - 1 外, xi=0x_i = 0
  • 对于 100%100\% 的数据,1n1001 \le n \le 1000xin0 \le x_i \le n。保证每一行除第一个数外的其他整数 cc 均有 1cn1 \leq c \leq n 且两两不同。
  • 数据保证不会出现「一个人是自己的朋友」,或者「一个人既是另一个人的朋友,又是他朋友的朋友」的情况。