纯模拟
2025-07-27 14:20:27
发布于:河北
3阅读
0回复
0点赞
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin >> n >> m;
int num2[1005],num3[1005];//num2记录出站顺序。num3记录车辆是否进站
for(int i = 1;i <= n; i++){
cin >> num2[i];
}
while(m--){
//每次模拟 ,初始化栈,flag,数组
stack<int> st;
string flag = "Yes";
int num1[1005];
for(int i = 1;i<= n; i++){
num1[i] = num2[i];
num3[i] = 1;
}
int cnt = 0;
for(int i = 1;i <= n; i++){
int x ;
cin >> x;
if(num3[x] != 0){//未进站
while(true){
st.push(num1[++cnt]);
num3[num1[cnt]] = 0;
if(num1[cnt]==x) break;
}
//cout << st.top()<<endl;
if(!st.empty())
st.pop();
}else{
if(x == st.top()){
//cout << st.top()<<endl;
st.pop();
}else{
flag = "No";
}
}
}
cout << flag <<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个