明明输出和各数据点一模一样,但居然全WA!!!
getchar()害人不浅,读了多余空行!!!把getchar()改成scanf一次读入就行了——>下面注释的是搞人的getchar
#include<bits/stdc++.h>
using namespace std;
int n;
int sum=1;
bool flag1=false,flag2=false;
int lt[1000],rt[1000];
int mid,num;
char basic[100001];
char pro;
char qian[1000010];
void digui(int left,int right)
{
flag1=false,flag2=false;
if(left<right)
{
digui(left,(left+right)/2);
digui((left+right+1)/2,right);
}
for(int i=left;i<=right;i++)
{
if(basic[i]=='0')
{
flag1=true;
}
else flag2=true;
}
if(flag1&&flag2)
{
pro='F';
}
else if(flag1&&(!flag2))
{
pro='B';
}
else if(flag2&&(!flag1))
{
pro='I';
}
cout<<pro;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
sum*=2;
}
// getchar();
// for(int i=1;i<=sum+1;i++)
// {
// pro=getchar();
// basic[i]=pro;
// }
// digui(1,sum);
scanf("%s",basic);
digui(0,sum-1);
return 0;
}