题目1366:栈的压入、弹出序列

来源:互联网 发布:二维码生成软件设备 编辑:程序博客网 时间:2024/06/05 18:30
#include <stdio.h> int n;int d[100001];int s[100001];int top;int ans; int main(){    int i, cd, t;    while (scanf("%d", &n) != EOF)    {        for (i = 0; i < n; i++)            scanf("%d", &d[i]);         top = -1;        cd = 0;        ans = 1;         for (i = 0; i < n; i++)        {            scanf("%d", &t);            if (!ans)                continue;            while ((top == -1 || s[top] != t) && cd < n)                s[++top] = d[cd++];            if (cd == n && s[top] != t)                ans = 0;            if (top == -1)                ans = 0;            top--;        }         puts(ans ? "Yes" : "No");    }    return 0;} /**************************************************************    Problem: 1366    User: cust123    Language: C++    Result: Accepted    Time:270 ms    Memory:1792 kb****************************************************************/

0 0
原创粉丝点击