如题,在洛谷能AC,在一本通上不知为何会WA。
求助大佬!!!
题目:洛谷
一本通
记录:
一本通记录
洛谷记录
#include<iostream>
#include<vector>
using namespace std;
string s;
int n;
struct AC{
char f;
int real;
vector<int>v;
}a[10010];
void Load(int beg,int end,int lst){
int flg0=0,flg1=0;
for(int i=beg;i<=end;++i){
if(s[i]=='0'){
flg0=1;
}
if(s[i]=='1'){
flg1=1;
}
}
int j;
if(flg0&&!flg1){
for(int i=1;i<=10000;++i){
if(!a[i].real){
a[lst].v.push_back(i);
a[i].real=1;
a[i].f='B';
j=i;
break;
}
}
}
if(!flg0&&flg1){
for(int i=1;i<=10000;++i){
if(!a[i].real){
a[lst].v.push_back(i);
a[i].real=1;
a[i].f='I';
j=i;
break;
}
}
}
if(flg0&&flg1){
for(int i=1;i<=10000;++i){
if(!a[i].real){
a[lst].v.push_back(i);
a[i].real=1;
a[i].f='F';
j=i;
break;
}
}
}
if(beg==end)return ;
Load(beg,(beg+end-1)/2,j);
Load((beg+end-1)/2+1,end,j);
}
void dg(int k){
for(int i=0;i<a[k].v.size();++i){
dg(a[k].v[i]);
}
cout<<a[k].f;
}
int main(){
cin>>n;
cin>>s;
Load(0,s.size()-1,0);
dg(0);
}