1 条题解

  • 0
    @ 2024-12-26 17:11:19

    C :

    #include<stdio.h>
    int main()
    {
    	int n,a=1,b=2,c=3,y1,i,t;
    	int flag=0;
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{
    	    scanf("%d",&y1);
    		if(y1==c)
    			flag++;
    		else if(y1==a)
    		{
    			t=b;
    			b=c;
    			c=t;
    		}
    		else if(y1==b)
    		{
    			t=a;
    			a=c;
    			c=t;
    		}
    	}
    	if(flag)
    		printf("NO");
    	else
    		printf("YES");
    
        return 0;
    }
    

    C++ :

    #include <stdio.h>
    
    int main()
    {
    	int n;
    	int nums[110];
    	int k = 3;      //记录当前对局的旁观者 
    	scanf("%d",&n);
    	for(int i = 0; i < n; i++)
    	{
    		scanf("%d",&nums[i]);
    	}
    	for(int i = 0; i < n; i++)
    	{
    		if(nums[i] == k)
    		{
    			printf("NO");
    			return 0;    //检测到对局记录有问题直接结束即可 
    		}
    		else
    		{
    			k = 6 - k - nums[i];    //1,2,3总和为6,减去当前比赛的胜者和旁观者 
    		}                           //即为当前比赛的败者,成为下一句比赛的旁观者 
    	}
    	printf("YES");   //循环结束仍未检测到错误直接输出YES 
    	return 0;
    }
    
    • 1

    信息

    ID
    706
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    提交数
    25
    已通过
    9
    上传者