车箱调度

输入

有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;
}
相关推荐
旖-旎几秒前
位运算(只出现一次的数字|||)(5)
c++·算法·leetcode·位运算
kyle~8 分钟前
ROS2---客户端服务(rclcpp::Client)
c++·物联网·机器人·ros2
轻口味16 分钟前
HarmonyOS 6 自定义人脸识别模型8:MindSpore Lite框架介绍与使用
c++·华为·ai·harmonyos
IdahoFalls23 分钟前
QT-Windows Kits-版本问题:【“_mm_loadu_si64”: 找不到标识符】解决方案[NEW]
开发语言·c++·windows·qt·算法·visual studio
承渊政道31 分钟前
【优选算法】(实战掌握分治思想的使用方法)
数据结构·c++·笔记·vscode·学习·算法·leetcode
南境十里·墨染春水35 分钟前
C++传记 this指针 及区分静态非静态成员(面向对象)
开发语言·jvm·c++·笔记
揽月凡尘35 分钟前
基于 SWIG 的 C++ Embind 绑定自动化技术说明
开发语言·c++·自动化
Yungoal36 分钟前
C++基础项目结构
数据结构·c++·算法
扶摇接北海17642 分钟前
洛谷:B4477 [语言月赛 202601] 考场安排
数据结构·c++·算法
IAUTOMOBILE1 小时前
Qt 入门级开发实践:浅析基于 QTtest 项目的 C++ GUI 编程基础
开发语言·c++·qt