#include<bits/stdc++.h>
using namespace std;
int suma[300005],sumb[300005];
char s[300005];
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
scanf("%s",s);
for(int i=0;i<n;i++){
if(s[i]=='0'){
suma[i+1]=suma[i]+1;
sumb[i+1]=sumb[i];
}
else{
sumb[i+1]=sumb[i]+1;
suma[i+1]=suma[i];
}
}
double minn=0x3f3f3f3f;
int zi=0;
for(int i=1;i<=n-1;i++){
if(i==2){
//cout<<"*((";
}
int p=floor(i*1.0/2+0.5);
int p1=floor((n-i)*1.0/2+0.5);
//cout<<suma[i]<<" "<<p<<" "<<sumb[n]-sumb[i-1]<<" "<<p1<<endl;
if(suma[i]>=p&&sumb[n]-sumb[i-1]>=p1){
// cout<<"*"<<" "<<i<<endl;
if(abs(n*1.0/2-i)<minn){
minn=abs(n*1.0/2-i);
zi=i;
}
}
}
if(sumb[n]>=abs(floor(n*1.0/2+0.5))){
if(abs(n*1.0/2-0)<minn){
minn=abs(n*1.0/2-0);
zi=0;
}
}
if(suma[n]>=abs(floor(n*1.0/2+0.5))){
if(abs(n*1.0/2-n)<minn){
minn=abs(n*1.0/2-n);
zi=n;
}
}
printf("%d\n",zi);
}
return 0;
}
样例过了,但是CF第2个点WA了,求调,谢谢。