#include<bits/stdc++.h> using namespace std; int f[1025],n; char t; int p[11]={1,2,4,8,16,32,64,128,256,512,1024}; // 打表2的次方 int main(){ cin>>n; for(int i=1;i<=p[n];++i){ cin>>t; f[i]=t-'0'; if(f[i]==0)cout<<"B"; else if(f[i]==1)cout<<"I"; else cout<<"F"; for(int k=1;k<11;++k){//合并过程 if(i%p[k]==0){ if(f[i]!=f[i-p[k-1]])f[i]=2; if(f[i]==0)cout<<"B"; else if(f[i]==1)cout<<"I"; else cout<<"F"; } } } return 0; } /************************************************************** Problem: 2246 User: chenshuo Language: C++ Result: Accepted Time:116 ms Memory:2076 kb ****************************************************************/