求助,不知道哪里逻辑错了全WA.....
查看原帖
求助,不知道哪里逻辑错了全WA.....
759274
Stevehim楼主2022/9/21 22:07
#include <stack>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
#define maxn 100010
using namespace std;
int a[maxn];
int b[maxn];
stack<int>s;
int n;
int q;

// 1 5 2 3 4
// 1 5 4 2 3
int main() {
	cin >> q;
	for (int i = 0; i < q; i++) {
		cin >> n;
		for (int j = 0; j < n; j++) {
			cin >> a[j];
		}
		int sum = 0;
		for (int j = 0; j < n; j++) {
			cin >> b[j];
		}
		for (int j = 0; j < n; j++) { //顺序的
			s.push(a[j]);
			if (a[j] == b[sum]) {
				s.pop();
				sum++;
			}
		}
		bool ss = true;
		int len = n - sum;
		for (int j = 0; j < len; j++) {
//			cout << "j=" << j << endl;
//			cout << s.top() << " " << b[sum] << endl;
			if (s.top() == b[sum]) {
				s.pop();
				sum++;
			} else {
				ss = false;
			}
		}
//		cout << sum << endl;
		if (!s.empty()) {
			ss = false;
		}
		if (ss) {
			cout << "Yes" << endl;
		} else {
			cout << "No" << endl;
		}
	}
	return 0;
}

2022/9/21 22:07
加载中...