塔子哥是一个勤勤恳恳的程序员,这天,他要对自己以前写的程序修一修bug了。
塔子哥有一个待修bug清单,用01串表示,其中第i位为“0”表示该bug已经修了,为“1”表示该bug待修。
塔子哥有t个工具能够帮他修bug,每个工具能修的bug同样也是用01串表示,其中第i位为“1”表示该工具能够修理该bug,为“0”表示该工具不能够修理该bug。但是每个工具都有那么一点小问题,他们会引入bug,其中第i位为“1”表示该工具进行修理后,会引入该bug。
现在,塔子哥告诉你他使用工具的顺序,他想知道,每使用一个工具后,还会剩下多少bug?
第一行输入一个正整数n,代表待修bug清单的长度。
第二行输入一个长度为n的01串,代表待修bug清单内容。
第三行输入一个正整数m,代表工具的数量。
接下来的2∗m行,每2行描述一个工具:
第一行输入一个长度为n的01串,代表该工具能够修理哪些bug。
第二行输入一个长度为n的01串,代表该工具会产生哪些bug。
接下来的一行,输入一个正整数t,代表一共使用了t个工具
接下来的t行,每行输入一个正整数i,代表塔子哥使用了第i个工具。
1≤n≤20
1≤m,t≤104
1≤i≤m
保证每个工具能够修理的bug和产生的bug不会重复。
t个整数,表示当前剩余的bug。
输入
4
1101
2
1010
0001
1001
0100
2
2
1
输出
1
2
说明
初始时,为1101,使用工具2后,为0100,剩余一个bug。
之后使用工具1,为0110,剩余两个bug。
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.