Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

再贴个代码

Posted by 15211160230 at 2016-12-08 21:43:30 on Problem 1363
#include <cstdio>
#include <stack>
using namespace std;
int main()
{	stack<int>de;
	int n,s[1001],right,i,j;
	bool flag[1001];
	while(scanf("%d",&n)&&n)
	{	while(scanf("%d",&s[1])&&s[1]) 
		{	for(i=2;i<=n;++i)	scanf("%d",&s[i]);
			memset(flag,0,sizeof(flag));
			while(!de.empty())	de.pop();
			right=1;
			bool flag1=0;
			for(i=1;i<=n;++i)
			{	if(!flag[s[i]])		//未入栈
				{	for(j=right;j<=s[i];++j)
						de.push(j),flag[j]=1;
					right=s[i]+1;
				}
				else if(s[i]!=de.top())
				{	flag1=1;
					break;
				}	
				de.pop();
			}
			if(flag1)	puts("No");
			else 		puts("Yes");	
		}
		puts("");
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator