fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define REP(i, a, b) for (int i = a; i <= b; i++)
  5. #define BACK(i, a, b) for (int i = a; i >= b; i--)
  6. #define MOD 1000000007
  7. #define PI 4 * atan(1)
  8. #define sz(A) (int)A.size()
  9. typedef long long ll;
  10. typedef vector<int> vi;
  11. typedef pair<int, int> pii;
  12. typedef vector<long long> vll;
  13. typedef long int int32;
  14. typedef unsigned long int uint32;
  15. typedef long long int int64;
  16. typedef unsigned long long int uint64;
  17.  
  18. int in[1004], pre[1004];
  19. int n;
  20. map<int,int> mp;
  21. void post(int in1, int in2, int pre1, int pre2){
  22. if(in1 > in2 || pre1 > pre2) return;
  23. int v = pre[pre1];
  24. int mid = mp[v];
  25. int leftnode = mid - in1;
  26. post(in1, mid-1, pre1 + 1, pre1 + leftnode);
  27. post(mid+1, in2, pre1 + leftnode + 1, pre2);
  28. cout << v << " ";
  29. }
  30. void solve(int test){
  31. cin >> n;
  32. for(int i=0; i<n; i++){
  33. cin >> in[i];
  34. mp[in[i]] = i;
  35. }
  36. for(int i=0; i<n; i++) cin >> pre[i];
  37. post(0, n-1, 0, n-1);
  38. cout << "\n";
  39. }
  40. int main(){
  41. ios_base::sync_with_stdio(false);
  42. cin.tie(NULL);
  43. cout.tie(NULL);
  44. int typetest = 1;
  45. if (typetest){
  46. int t;
  47. cin >> t;
  48. cin.ignore();
  49. REP(i, 1, t){
  50. solve(i);
  51. }
  52. }
  53. else solve(0);
  54. }
Success #stdin #stdout 0.01s 5268KB
stdin
Standard input is empty
stdout