题目描述
Farmer John 有 ()头编号为 的奶牛,奶牛之间的连接关系由一棵树描述。不幸的是,一场疾病正在蔓延。
起初,有一些奶牛一开始就被感染。每天夜里,每头被感染的奶牛都会把疾病传染给她们的邻居。奶牛一旦被感染,就会一直处于感染状态。在若干个夜晚过去之后,Farmer John 意识到出了问题,于是他检测了奶牛们,以确定谁感染了疾病。
给定 ()个不同的夜数,每个都是 范围内的整数。对于每个夜数,求出最初感染疾病的最少奶牛数,或者判定该夜数与给定的信息相矛盾。
输入格式
第一行包含 。
接下来一行包含一个长度为 的 01 串,第 位为 1 表示第 头奶牛被感染,为 0 表示未被感染。至少有一头奶牛被感染。
接下来 行包含这棵树的边。
然后是 ,以及随后的 个夜数值。
输出格式
行,输出每个夜数对应的答案;如果不可能,输出 。
样例
输入
5 11111 1 2 2 3 3 4 4 5 6 5 4 3 2 1 0
输出
1 1 1 1 2 5
输入
10 1111111111 1 2 2 3 2 4 2 5 2 6 6 7 7 8 8 9 9 10 11 0 1 2 3 4 5 6 7 8 9 10
输出
10 3 2 1 1 1 1 1 1 1 1
输入
5 11100 1 2 2 3 3 4 4 5 6 0 1 2 3 4 5
输出
3 1 1 -1 -1 -1
提示说明
【样例解释】
对于第一组询问(0 夜),一种可能是奶牛 1、2、3 一开始就感染了疾病。对于第二组询问(1 夜),一种可能是只有奶牛 2 一开始感染了疾病。对于第三组询问(2 夜),一种可能是只有奶牛 1 一开始感染了疾病。对于第四至第六组询问,不存在一致的可能性。
【数据规模与约定】
-
测试点 4-5:
-
测试点 6-8:所有奶牛都被感染。
-
测试点 9-11:
-
测试点 12-23:无附加限制。