车箱调度

输入

有n节车箱,n=0为全部工作结束;

再输入A站出车顺序:

再输入B站驶入顺序;

输出

可以调度输出Yes,不可以输出No

样例输入

5
1 2 3 4 5
5 4 3 2 1
5
1 2 3 4 5
5 4 1 2 3
6
1 2 3 4 5 6
5 4 3 2 1 6
6
1 2 3 4 5 6
4 3 2 1 6 5
0

样例输出

Yes
No
Yes
Yes

code

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
#include<algorithm>
#include<set> 
#include<stack>
using namespace std;

int main()
{
	int n;
	while (cin >> n && n) {
		vector<int> pre(n+1);
		for (int i = 1; i <= n; i++) 
			cin >>pre[i];
			
		vector<int> target(n+1);
		bool flag = true;
		for (int i = 1; i <= n; i++) 
			cin>>target[i];
			
		stack<int> C;
		int A = 1, B = 1;
		while (B <= n) {
			if (pre[A] == target[B]) {
				B++;
				A++;
			}
			else if (!C.empty() && C.top() == target[B]) {
				B++;
				C.pop();
			}
			else if (A<=n) {//放入栈C中
				C.push(pre[A++]);
			}
			else {//上述情况都没遇上直接break 
				flag = false;
				break;
			}
		}
		if(flag) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
		target.clear();
		pre.clear();
		while(C.size()){
			C.pop();
		}

	}
	return 0;
}
相关推荐
家有狸花1 小时前
VSCODE驯服日记(三):配置C++环境
c++·ide·vscode
dengqingrui1232 小时前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp
C++忠实粉丝2 小时前
前缀和(8)_矩阵区域和
数据结构·c++·线性代数·算法·矩阵
ZZZ_O^O2 小时前
二分查找算法——寻找旋转排序数组中的最小值&点名
数据结构·c++·学习·算法·二叉树
小飞猪Jay5 小时前
C++面试速通宝典——13
jvm·c++·面试
rjszcb6 小时前
一文说完c++全部基础知识,IO流(二)
c++
小字节,大梦想6 小时前
【C++】二叉搜索树
数据结构·c++
吾名招财6 小时前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
我是哈哈hh7 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
憧憬成为原神糕手7 小时前
c++_ 多态
开发语言·c++