#include #include #include using namespace std; int preIndex; class node{ public: char data; node* left; node* right; }; node* newNode(char data){ node* Node = new node(); Node->data = data; Node->left = NULL; Node->right = NULL; return (Node); } int search(string arr, int strt, int end, char value){ int i; for(i = strt; i <= end; i++) if(arr[i] == value) return i; return 0; } node* buildTree(string in, string pre, int start, int end){ if(start > end) return NULL; node* root = newNode(pre[preIndex++]); if(start == end) return root; int i; for(i = start; i <= end; i++) if(root->data == in[i]) break; if(start <= end){ root->left = buildTree(in, pre, start, i - 1); root->right = buildTree(in, pre, i + 1, end); } return root; } void printInorder(node* node, string& ans){ if(node == NULL) return; printInorder(node->left, ans); printInorder(node->right, ans); ans += node->data; } void deleteTree(node*& node){ if(node == NULL) return; deleteTree(node->left); deleteTree(node->right); delete node; } int main(){ string input; while(getline(cin, input)){ preIndex = 0; stringstream ss(input); string in, pre; ss >> pre >> in; string ans = ""; int len = in.size(); node* root = buildTree(in, pre, 0, len - 1); printInorder(root, ans); deleteTree(root); cout << ans << endl; } return 0; }