求助!这段代码为什么过不了
#include <bits/stdc++.h>
using namespace std;
int bin(string s){
int sum = 0;
for(int i = s.size()-1, j = 0; i >= 0; i--, j++){
if(s[i] == '1'){
sum += (1<<j);
}
}
return sum;
}
int main(){
string a, b;
char c;
int n,m,l,r;
cin >> n >> a >> b >> m;
for(int i = 0; i < m; i++){
cin >> c >> l >> r;
int cnt = 0;
if(c == 'A'){
for(int j = l-1; j <= r-1; j++){
a[j] = '1';
}
int s = bin(a);
for(int k = 0; k < n; k++){
if(b[k]=='1'){
if(s&(1<<(n-k-1)))
cnt++;
}
}
printf("%d\n",cnt);
}
else if(c == 'B'){
for(int j = l-1; j <= r-1; j++){
b[j] = '1';
}
int s = bin(a);
for(int k = 0; k < n; k++){
if(b[k]=='1'){
if(s&(1<<(n-k-1)))
cnt++;
}
}
printf("%d\n",cnt);
}
}
}