#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e5 + 5;
int n;
int x[N], p[N];
int ft[N];
void update(int i, int val) {
for (; i <= n; i += i & (-i)) ft[i] += val;
}
int getSum(int i) {
int ans = 0;
for (; i > 0; i -= i & (-i)) ans += ft[i];
return ans;
}
int getIndex(int i) {
int l = 1, r = n, ans = -1;
// tìm x nhỏ nhất sao cho getSum(x) >= i
while (l <= r) {
int mid = (l + r) >> 1;
if (getSum(mid) >= i) {
ans = mid;
r = mid - 1;
}
else {
l = mid + 1;
}
}
return ans;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) cin >> x[i];
for (int i = 1; i <= n; i++) cin >> p[i];
for (int i = 1; i <= n; i++) update(i, 1);
for (int i = 1; i <= n; i++) {
// tìm chỉ số thực tế của p[i] trong mảng x hiện tại
int j = getIndex(p[i]);
cout << x[j] << ' ';
// xoá x[j] khỏi mảng
update(j, -1);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDJlNSArIDU7IAoKaW50IG47ICAKaW50IHhbTl0sIHBbTl07IAoKaW50IGZ0W05dOyAKCnZvaWQgdXBkYXRlKGludCBpLCBpbnQgdmFsKSB7Cglmb3IgKDsgaSA8PSBuOyBpICs9IGkgJiAoLWkpKSBmdFtpXSArPSB2YWw7IAp9CgppbnQgZ2V0U3VtKGludCBpKSB7CglpbnQgYW5zID0gMDsgCglmb3IgKDsgaSA+IDA7IGkgLT0gaSAmICgtaSkpIGFucyArPSBmdFtpXTsgCglyZXR1cm4gYW5zOyAKfQoKaW50IGdldEluZGV4KGludCBpKSB7CglpbnQgbCA9IDEsIHIgPSBuLCBhbnMgPSAtMTsgCgkvLyB0w6xtIHggbmjhu48gbmjhuqV0IHNhbyBjaG8gZ2V0U3VtKHgpID49IGkKCXdoaWxlIChsIDw9IHIpIHsKCQlpbnQgbWlkID0gKGwgKyByKSA+PiAxOyAKCQlpZiAoZ2V0U3VtKG1pZCkgPj0gaSkgewoJCQlhbnMgPSBtaWQ7ICAgCgkJCXIgPSBtaWQgLSAxOyAKCQl9CgkJZWxzZSB7CgkJCWwgPSBtaWQgKyAxOyAKCQl9Cgl9CglyZXR1cm4gYW5zOyAKfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgIAkKCWNpbiA+PiBuOyAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IHhbaV07IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gcFtpXTsgCgoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB1cGRhdGUoaSwgMSk7IAoKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCS8vIHTDrG0gY2jhu4kgc+G7kSB0aOG7sWMgdOG6vyBj4bunYSBwW2ldIHRyb25nIG3huqNuZyB4IGhp4buHbiB04bqhaQoJCWludCBqID0gZ2V0SW5kZXgocFtpXSk7IAoJCWNvdXQgPDwgeFtqXSA8PCAnICc7CgoJCS8vIHhvw6EgeFtqXSBraOG7j2kgbeG6o25nIAoJCXVwZGF0ZShqLCAtMSk7IAoJfQp9