提交时间:2023-08-23 15:43:32

运行 ID: 99694

#include <bits/stdc++.h> using namespace std; int n,v; struct Edge{ char er1,er2; }; Edge e[1000005]; void dfs(int n,string b) { if(b==""||b=="") return ; bool y1=0,y2=0; for(int i=0;i<n;i++){ if(b[i]=='1'){ y1=1; } else{ y2=1; } } char r; if(y1==1&&y2==0){ r='I'; } else if(y1==0&&y2==1){ r='B'; } else{ r='F'; } dfs(n/2,b.substr(0,n/2)); dfs(n/2,b.substr(n/2,n/2)); cout<<r; } int main() { cin>>n; v=1<<n; string aa; cin>>aa; int y1,y0; dfs(v,aa); return 0; }