#include <stdio.h> int N; char b[4096]={0}; int s[10][5]={0}; void print(){ for (int i=0,flag=0;i<1024 && b[i]!=0;i++){ char c=b[i]-48; if (c ==0||c==1) { printf("%c",c==0?'B':'I'); s[0][i%2]=c; s[0][2]++; for (int j=0;j<N && s[j][2]==2;j++){ flag = s[j][0] == s[j][1] && s[j][0]!=2 ? s[j][0] : 2; //printf("Mike:i=%d,j=%d,flag=%d,[%d,%d,%d]\n",i,j,flag,s[j][0], s[j][1],s[j][2]); printf("%c",flag ==0 ? 'B':((flag==1) ?'I':'F')); s[j+1][s[j+1][2]]=flag; s[j+1][2]++; s[j][2]=0; } } } } int main(){ scanf("%d",&N); if (N>=0 && N<=10) { scanf("%s",b); //printf("Mike:N=%d,s=%s\n",N,b); print(); } return 0; } /************************************************************** Problem: 2246 User: admin Language: C Result: Accepted Time:46 ms Memory:1148 kb ****************************************************************/