// UVa 10701 - Pre, in and post #include <iostream> #include <map> #include <string> using namespace std; map<char, int> preorder; string s1, s2, sol; void build(int ini, int fin) { if (ini <= fin) { int root = ini; for (int k = ini + 1; k <= fin; k++) if (preorder[s2[k]] < preorder[s2[root]]) root = k; build(ini, root - 1); build(root + 1, fin); sol += s2[root]; } } int main() { int cases; cin >> cases; for (; cases > 0; cases--) { preorder.clear(); int n; cin >> n >> s1 >> s2; for (int i = 0; i < n; i++) preorder[s1[i]] = i; sol = ""; build(0, n - 1); cout << sol << endl; } return 0; }
Monday, September 14, 2015
UVa 10701 - Pre, in and post
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment