#U1920FG3. Delegation

Delegation

Farmer John 的农场由 N 块草地(1≤N≤105^5)和 N−1 条道路组成,满足每块草地都能从任意其他草地到达。也就是说,这个农场组成一棵树。但在与不可避免地由树而生的麻烦的算法问题打了 28 年交道之后,FJ 终于认为树形的农场太复杂了。他相信在链上的算法问题更简单。所以,他的计划是将这些道路划分成若干条链,并将每条链交给一名值得信任的农场工人负责。为了避免争执,他希望每条链的长度相同。他想知道对于哪些长度存在这样的划分。

更具体地,对于每个 1≤K≤N−1,帮助 Farmer John 求出这些道路是否能被划分为长度恰好为K 的链。

测试点性质:

  • 在测试点 2-4 中树组成了一个 “星形”;至多一个结点的度大于二。
  • 测试点 5-8 满足N≤103^3
  • 测试点 9-15 没有额外限制。

输入格式(文件名:deleg.in):

第一行包含一个整数 N。以下 N−1 行每行包含两个空格分隔的整数 a 和 b,表示结点a 与b 之间有一条边。a 和 b 均在范围 1…N 内。

输出格式(文件名:deleg.out):

输出一个长为 N−1 的二进制字符串。对于每一个 1≤K≤N−1,如果可以将树的边划分为长度恰好为K 的链,则字符串从左往右数第K 位为 1,否则为 0。

输入样例:

13
1 2
2 3
2 4
4 5
2 6
6 7
6 8
8 9
9 10
8 11
11 12
12 13

输出样例:

111000000000

对于K=1,2,3,有可能将树划分为长为 K 的链。对于 K=3,一种可能的划分方式如下:

1312118,10986,7623,5421