CDOJ 数据结构训练K

来源:互联网 发布:钢铁侠反应堆淘宝 编辑:程序博客网 时间:2024/06/15 15:11
#include <map>#include <set>#include <list>#include <cmath>#include<cctype>#include <ctime>#include <deque>#include <stack>#include <queue>#include <cstdio>#include <string>#include <vector>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define LL long long#define PI 3.1415926535897932626using namespace std;int gcd(int a, int b){return a % b == 0 ? b : gcd(b, a % b);}#define MAXN 1000005int  source[MAXN];int target[MAXN];int Stack[MAXN];int top,front,rear;int  N;int main(){    scanf("%d",&N);        for (int i=1;i<=N;i++)           {             scanf("%d",&source[i]);           }//转化        for (int i=1;i<=N;i++)            scanf("%d",&target[i]);        int ok=1,cas=0,top=0;        int B=1,A=source[cas];        while (B<=N)        {            if (A==target[B]) {A=source[++cas];B++;}            else if (top && Stack[top]==target[B]) {top--;B++;}            else if (cas<=N) Stack[++top]=source[cas++];            else {ok=0;break;}        }      printf("%s\n",ok?"Yes":"No");    return 0;}

0 0