2-4全MLE
#include<bits/stdc++.h>
using namespace std;
string middle,back;
void cut(string &q,string p,int begin,int end)//切除左右树
{
for(int i=begin;i<end;i++)
q+=p[i];
}
void f(string str1,string str2)
{
if(str1.size()==1)
{
cout<<str1;
return;
}
int k;
string s1,s2,s3,s4;
char seed=str2[str2.size()-1];
for(k=0;k<str1.size();k++)
if(seed==str1[k])
{
cout<<seed;//输出根
cut(s1,str1,0,k);
cut(s2,str1,k+1,str1.size());
break;
}
for(int i=0;i<str2.size();i++)
{
for(int j=0;j<max(s1.size(),s2.size());j++)
if(s1[j]==str2[i]) s3+=s1[j];
else
if(s2[j]==str2[i]) s4+=s2[j];
}
f(s1,s3);
f(s2,s4);
}
int main()
{
cin>>middle>>back;
f(middle,back);
}