因为长度是偶数,所以二分很容易想到,很多树上的东西其实不需要建树的。

#include <iostream>
#include <string>
using namespace std;

char FBI(string s) {
    if (s.length() > 1) {
        cout << FBI(s.substr(0, s.length() / 2));
        cout << FBI(s.substr(s.length() / 2, s.length() / 2));
    }
    if (s == string(s.length(), '0')) return 'B';
    if (s == string(s.length(), '1')) return 'I';
    return 'F';
} 

int main() {
    int n;
    string s;
    cin >> n >> s;
    cout << FBI(s) << endl;
    return 0;
}