车箱调度

输入

有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;
}
相关推荐
tan180°17 小时前
Boost搜索引擎 查找并去重(3)
linux·c++·后端·搜索引擎
阿昭L17 小时前
c++中获取随机数
开发语言·c++
3壹17 小时前
数据结构精讲:栈与队列实战指南
c语言·开发语言·数据结构·c++·算法
aaaweiaaaaaa18 小时前
c++基础学习(学习蓝桥杯 ros2有C基础可看)
c++·学习·蓝桥杯·lambda·ros2·智能指针·c++类
一拳一个呆瓜18 小时前
【MFC】对话框属性:字体 (Font Name) 和 大小 (Font Size)
c++·mfc
郝学胜-神的一滴18 小时前
基于OpenGL封装摄像机类:视图矩阵与透视矩阵的实现
c++·qt·线性代数·矩阵·游戏引擎·图形渲染
啊?啊?19 小时前
14 C++ STL 容器实战:stack/list 模拟实现指南 + priority_queue 用法及避坑技巧
c++·
汉克老师19 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
羚羊角uou19 小时前
【Linux】匿名管道和进程池
linux·c++·算法
曙曙学编程20 小时前
stm32——独立看门狗,RTC
c语言·c++·stm32·单片机·嵌入式硬件