for _ in range(int(input())):
n = int(input())
a = input()
b = input()
b_modified = list(b)
for i in range(n - 2):
if a[i] == a[i + 2] == '0':
b_modified[i + 1] = '1'
a_modified = list(a)
for i in range(n - 2):
if b_modified[i] == b_modified[i + 2] == '1':
a_modified[i + 1] = '1'
prefix_sum = [0] * (n + 1)
for i in range(1, n + 1):
prefix_sum[i] = prefix_sum[i - 1] + int(a_modified[i - 1])
for _ in range(int(input())):
l, r = map(int, input().split())
res = prefix_sum[r] - prefix_sum[l - 1]
res -= a_modified[l - 1] == '1' and a[l - 1] == '0'
if l < r:
res -= a_modified[r - 1] == '1' and a[r - 1] == '0'
if l + 1 < r:
res -= a_modified[l] == '1' and a[l] == '0' and (b[l - 1] == '0' or (l + 2 == r and b[r - 1] == '0'))
if l + 2 < r:
res -= a_modified[r - 2] == '1' and a[r - 2] == '0' and b[r - 1] == '0'
print(res)
242. Valid Anagram | 141. Linked List Cycle |
21. Merge Two Sorted Lists | 203. Remove Linked List Elements |
733. Flood Fill | 206. Reverse Linked List |
83. Remove Duplicates from Sorted List | 116. Populating Next Right Pointers in Each Node |
145. Binary Tree Postorder Traversal | 94. Binary Tree Inorder Traversal |
101. Symmetric Tree | 77. Combinations |
46. Permutations | 226. Invert Binary Tree |
112. Path Sum | 1556A - A Variety of Operations |
136. Single Number | 169. Majority Element |
119. Pascal's Triangle II | 409. Longest Palindrome |
1574A - Regular Bracket Sequences | 1574B - Combinatorics Homework |
1567A - Domino Disaster | 1593A - Elections |
1607A - Linear Keyboard | EQUALCOIN Equal Coins |
XOREQN Xor Equation | MAKEPAL Weird Palindrome Making |
HILLSEQ Hill Sequence | MAXBRIDGE Maximise the bridges |