luogo_1087 FBI树

#include<bits/stdc++.h>
using namespace std;
int n;
char a[100000];
void make(){
    for(int i=n-1;i;i--){
        if(a[i*2]=='B' && a[i*2+1]=='B')a[i]='B';
        else if(a[i*2]=='I' && a[i*2+1]=='I')a[i]='I';
        else a[i]='F';
    }
}
void dfs(int o){
    if(o*2<n*2)dfs(o*2);
    if(o*2+1<n*2)dfs(o*2+1);
    putchar(a[o]);
}
int main(){
    scanf("%d",&n); getchar(); getchar();
    n=(1<<n);
    for(int i=n;i<n*2;i++){
        a[i]=getchar();
        if(a[i]=='1')a[i]='I';
        else a[i]='B';
    }
    make();
    dfs(1);
    puts("");
    return 0;
}
posted @ 2017-09-10 13:16  wqtnb_tql_qwq_%%%  阅读(152)  评论(0编辑  收藏  举报