1

噢莫加纳加加加 · 发布于 2024-07-02 · 浏览 576 回复 0
#include <iostream>
#include <stack>
using namespace std;

int main() {
	int q, n, a[10001], b[10001], flag = 1;
	stack<int>val;
	cin >> q;
	
	for (int i = 0; i < q; i++) {
		int j, k, t = 0;
		cin >> n;
		//输入序列
		for (j = 0; j < n; j++) {
			cin >> a[j];
		}
		for (j = 0; j < n; j++) {
			cin >> b[j];
		}
		//进出栈
		
		for (k = 0; k < n; k++) {
			val.push(a[k]);
			while (!val.empty()&& val.top() == b[t] ) {
				//cout << val.top() << " ";
				val.pop();
				t++;

			}
			//cout << "123" << endl;
		}
		if (!val.empty())
			printf("No\n");
		else
			printf("Yes\n");
		while (!val.empty()) val.pop();
	}

	return 0;
}

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复