求问为什么一直都只有百分之50?
查看原帖
求问为什么一直都只有百分之50?
405851
peaceandlove2002楼主2021/5/13 21:28
#include <stdio.h>
int main()
{
	int n;
	
		while(scanf("%d",&n)!=EOF){
		if(n==0) return 0;
		int i,j;
		int a[n+5],b[n+5],stack[2000]={0},top=-1;
		while(1){  
        scanf("%d",&b[0]);  
        if(b[0]==0)  break;  
        for(int i=1;i<n;i++)  
        {  
             scanf("%d",&b[i]);  
        }  
		for(i=0;i<n;i++){
			a[i]=i+1;
		}
		
		    j=0;
			for(i=0;i<n;){
			if(a[i]!=b[j]&&top==-1) {
				stack[++top]=a[i];
				i++;
			}
			if(a[i]!=b[j]&&top!=-1){
				if(stack[top]==b[j]) {
				j++;top--;}
				if(stack[top]!=b[j]) {
					stack[++top]=a[i];
					i++;
				}
			}
			if(a[i]==b[j]) {
				i++;j++;
			}}
			
			while(top!=-1){
				if(stack[top]==b[j])  {
				j++;top--;}
				if(stack[top]!=b[j])   
				break;
			}
			
		
		if(top==-1) printf("Yes\n");
		 else printf("No\n");
	}
	printf("\n");}
	return 0;
}
2021/5/13 21:28
加载中...