Uva铁轨 (p140, 栈)

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva铁轨 (p140, 栈)相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
在这里插入图片描述
输入样例:

5
1 2 3 4 5
5 4 1 2 3
0
6
6 5 4 3 2 1
0
0

输出样例:

Yes
No

Yes

翻译:
在这里插入图片描述
在这里插入图片描述

做了三次:
1、两个queue一个stack,Runtime Error。
2、用数组模拟queue,一个stack。先把queue全输入,WA。
3、看了书,while里四个if,简洁。

#include<iostream>
#include<stack>
using namespace std;
int main()
{
	int n,b[1005],a1,b1,flag;
	while(cin>>n)
	{
		if(n==0) return 0;
		
		int temp;
		
		while(cin>>temp)
		{
			if(temp==0) 
			{
				cout<<endl;
				break;
			}
			
			//Yes or No
			a1=1;
			b1=1;
			flag=0;
			b[1]=temp;
			for(int i=2;i<=n;i++)
			{
				cin>>b[i];				
			}
			
			stack<int>c;
			
			while(b1<=n)
			{
				if(b[b1]==a1) 
				{
					b1++;
					a1++;
				}
				else if(c.size()&&b[b1]==c.top())
				{
					b1++;
					c.pop();
				}
				else if(a1<=n)
				{
					c.push(a1);
					a1++;
				}
				else 
				{
					flag=1;
					break;
				}
			}
			
			if(flag) cout<<"No"<<endl;
			else cout<<"Yes"<<endl;
		}
	}
	return 0;
}

以上是关于Uva铁轨 (p140, 栈)的主要内容,如果未能解决你的问题,请参考以下文章

铁轨(UVa 514)

UVA514铁轨

Rails,uva 514

UVa514 Rails

Bandwidth UVA140

Uva 514-铁轨 Rails