
cnt[0]莫名其妙被赋值为3? 不清楚为什么?
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
int num[1],cnt[1];
signed main(){
int t=read();
while(t--){
num[0]=0,num[1]=0,cnt[0]=0,cnt[1]=0;
int n=read(),m=read();
string a,b;
cin>>a>>b;
for(int i=0;i<m;i++){
num[b[i]-'0']++;
}
//cnt[0]=0,cnt[1]=0;
cout<<cnt[0]<<"\n";
//cout<<num[1]<<" "<<num[0]<<"\n";
//cout<<cnt[0]<<" "<<cnt[1]<<"\n";
bool flag=1;
int ans=0;
for(int i=0;i<n;i++){
cnt[a[i]-'0']++,ans++;
cout<<cnt[a[i]-'0']<<" "<<ans<<"\n";
if(cnt[a[i]-'0']>num[a[i]-'0']){
cout<<ans-1<<"\n";
flag=0;
break;
}
}
if(flag)cout<<n<<"\n";
}
return 0;
}