定义由 个字符组成的二进制字符串 的“自审值”为:。 现在,对于给定的字符串,你需要独立处理 次询问。每一次询问给定一个区间 ,求解区间内全部连续子串的“自审值”之和。 其中, 表示按位或运算。如果您需要更多位运算相关的知识,可以参考 OI-Wiki的相关章节。 子串为从原字符串中,连续的选择一段字符(可以全选、可以不选)得到的新字符串。
输入描述:
第一行输入一个整数 代表字符串的长度。第二行输入一个长度为 、仅由 和 两个字符组成的字符串 ,代表给定的字符串。下标从 开始。第三行输入一个整数 代表询问次数。此后 行,每行输入两个整数 代表询问的区间。


输出描述:
对于每一次询问,新起一行。输出一个整数,代表区间内全部连续子串的“自审值”之和。
示例1

输入

5
10110
2
3 5
1 1

输出

5
1

说明

\hspace{15pt}对于第一次询问,拆分出全部子区间:
\hspace{23pt}\bullet\,区间 [3, 3] 的“自审值”为 1
\hspace{23pt}\bullet\,区间 [3, 4] 的“自审值”为 1 \operatorname{or} 1 = 1
\hspace{23pt}\bullet\,区间 [3, 5] 的“自审值”为 1 \operatorname{or} 1 \operatorname{or} 0 = 1
\hspace{23pt}\bullet\,区间 [4, 4] 的“自审值”为 1
\hspace{23pt}\bullet\,区间 [4, 5] 的“自审值”为 1 \operatorname{or} 0 = 1
\hspace{23pt}\bullet\,区间 [5, 5] 的“自审值”为 0
\hspace{15pt}综上所述,“自审值”之和为 1 + 1 + 1 + 1 + 1 + 0 = 5
加载中...