该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定整数k,现在有2k支队伍(编号为1到2k)进行共2k−1场比赛,流程如下:

1.第1支与第2支进行比赛、第3支与第4支进行比赛,以此类推,这一阶段总共进行 队伍数除以
二场比赛。这些比赛中必定分出胜负,负方淘汰,胜方继续下一轮的比赛;
2.重复进行上述步骤,直到只有一支队伍没有被淘汰,这支队伍成为冠军。
(依据原题目描述中的图片来获得更好理解。该图满足k=3。)
给定一个长度为2k−1的、仅包含字符 01?的字符串s,具体的:
如果si="0",表示第i次比赛中,编号更小的队伍获胜。
如果si="1",表示第i次比赛中,编号更大的队伍获胜。
如果si="?",表示第i次比赛中,任意一方都可能获胜。
设f(s)表示根据字符串s,所有可能成为冠军的不同的队伍数。
给定查询次数q,每次查询给定整数p和字符c,求将s的第p位修改为c后f(s)的值。
应注意的是,每次询问之间并不是互相独立的,也就是说每一次查询都会影响之后的查询。
输入格式
第一行一个整数k。
第二行包括一个长为2k−1的字符串,表示初始时比赛情况。
第三行一个整数q,表示查询次数。
接下来q行,每行一个数字和一个字符 01?,表示将第i场比赛结果修改为给定字符。
输出格式
对于每个询问,输出一行一个整数,表示f(s)。
样例
输入样例
3
0110?11
6
5 1
6 ?
7 ?
1 ?
5 ?
1 1
输出样例
1
2
3
3
5
4
提示
对于50%的数据,1<=q<=100,1<=k<=6。
对于100%的数据,1<=k<=18,∣s∣=2k−1,1<=q<=2×105。