例题6-2 UVa 514(栈)

来源:互联网 发布:亚马逊域名 编辑:程序博客网 时间:2024/05/16 19:48


/*算法竞赛入门 LRJ 例题6-2(UVa 514)Rails*/#include<iostream>#include<cstdio>#include<cstring>#include<stack>#include<map>#include<queue>#include<cmath>#include<algorithm>#include<deque>typedef long long LL;using namespace std;#pragma comment(linker, "/STACK:102400000,102400000")const int INF=0x3f3f3f3f;const int N = 10010;int a[N];stack<int> Q;int main(){    int n;    while(~scanf("%d",&n), n)    {        while(~scanf("%d",&a[1]))        {            if(a[1] == 0)                break;            for(int i = 2; i <= n; i++)                scanf("%d",&a[i]);            int in = 1,out = 1;            while(out <= n)            {                if(in == a[out])                    in++,out++;                else if(!Q.empty() && Q.top() == a[out])                    Q.pop(),out++;                else if(in < n)                    Q.push(in++);                else                    break;            }            if(out != n+1)                printf("No\n");            else                printf("Yes\n");        }        puts("");    }    return 0;}


0 0
原创粉丝点击