#include using namespace std; typedef struct BTree{ char s; struct BTree *left; struct BTree *right; }BTree,*BNode; inline void creat(BNode &T,string s1,string s2) { if(s1.length()==0) { T=NULL; return; } int index = s2.find(s1[0]); string ls1 = s1.substr(1,index); string rs1 = s1.substr(index+1,s1.length()); string ls2 = s2.substr(0,index); string rs2 = s2.substr(index+1,s2.length()) ; T=(BNode)malloc(sizeof(BTree)); if(T!=NULL) { T->s = s1[0]; creat(T->left,ls1,ls2); creat(T->right,rs1,rs2); } } void postorderTraversal(BNode &t) { if(t!=NULL) { if(t->left!=NULL) { cout<<"("; postorderTraversal(t->left); cout<<")"; } cout<s;if(t->right!=NULL) { cout<<"("; postorderTraversal(t->right); cout<<")"; } } } int main() { string s1,s2; int n; cin>>n; while(n--) { cin>>s1>>s2; BNode t; creat(t,s1,s2); postorderTraversal(t); cout<