#include #include #include using namespace std;
int main() {
int ask_num = 0;
cin >> ask_num;
vector<int> pushed;
vector<int> poped;
stack<int> tmp_stack;
int stack_length = 0;
while (ask_num--) {
cin >> stack_length;
// 实现插入栈
for (int i = 0; i < stack_length; i++) {
int num;
cin >> num;
pushed.push_back(num);
}
for (int i = 0; i < stack_length; i++) {
int num;
cin >> num;
poped.push_back(num);
}
// 开始判断出栈是否为yes
int j = 0, top = 0;
for (int i = 0; i < stack_length; i++) {
tmp_stack.push(pushed[i]);
while (!tmp_stack.empty() && tmp_stack.top() == poped[j]) {
tmp_stack.pop();
j++;
}
}
if (tmp_stack.empty())
cout << "Yes" << endl;
else
cout << "No" << endl;
}
}