车箱调度

输入

有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;
}
相关推荐
zxctsclrjjjcph3 小时前
【高并发内存池】从零到一的项目之centralcache整体结构设计及核心实现
开发语言·数据结构·c++·链表
炯哈哈3 小时前
【上位机——MFC】单文档和多文档视图架构
开发语言·c++·mfc·上位机
利刃大大4 小时前
【网络编程】四、守护进程实现 && 前后台作业 && 会话与进程组
linux·网络·c++·网络编程·守护进程
oioihoii4 小时前
C++23 std::tuple与其他元组式对象的兼容 (P2165R4)
c++·链表·c++23
赵和范4 小时前
C++:书架
开发语言·c++·算法
龙湾开发6 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 05.纹理贴图
c++·笔记·学习·3d·图形渲染·贴图
yasuniko6 小时前
C++线程库
开发语言·c++
还有几根头发呀7 小时前
深入理解C/C++内存管理:从基础到高级优化实践
c++
zxctsclrjjjcph7 小时前
【递归、搜索和回溯】递归、搜索和回溯介绍及递归类算法例题
开发语言·c++·算法·力扣
hallo-ooo8 小时前
【C/C++】范围for循环
c语言·c++