rt,想做没有括号的,考试突发奇想用了个学都没学的链表,求调
void d_2(){
s1[s.size()-1]=s.size()-1;
s2[0]=0;
for(int i=0;i<s.size()-1;i++) s1[i]=i+1;
for(int i=1;i<s.size();i++) s2[i]=i-1;
for(int i=1;i<s.size()-1;i++){
if(s[i]=='&'){
a[i-1]=a[i+1]=1;
s1[i]=s1[s1[i]];
s2[i]=s2[s2[i]];
s1[s2[s2[i]]]=i;
s2[s1[s1[i]]]=i;
if(s[s2[i]]=='0') s[i]='0',ans_1++;
else if(s[s1[i]]=='0') s[i]='0';
else s[i]='1';
//cout<<s<<endl;
}
}
for(int i=1;i<s.size()-1;i++){
if(s[i]=='|'){
a[i-1]=a[i+1]=1;
s1[i]=s1[s1[i]];
s2[i]=s2[s2[i]];
s1[s2[s2[i]]]=i;
s2[s1[s1[i]]]=i;
if(s[s2[i]]=='1') s[i]='1',ans_2++;
else if(s[s1[i]]=='1') s[i]='1';
else s[i]='0';
//cout<<s<<endl;
}
}
for(int i=0;i<s.size();i++){
if(a[i]==0){
cout<<s[i]<<endl;
cout<<ans_1<<' '<<ans_2;
return ;
}
}
//cout<<s;
return ;
}