zh的战争
Description
zh跟其余两人约战csgo,规则如下:
三人的编号分别为1,2,3
1和2先打,3旁观;游戏结束时,输的人成为下一场比赛的旁观者,赢家与当前旁观者对战。
他们一共玩了n场,并记录每一场比赛的赢家编号。请根据日志确定他们的记录是否正确。
Input
第一行包括一个整数n(1<=n<=100),表示n场比赛。
接下来的n行是日志。
每一行包括一个整数xi(1 <= xi <= 3),分别表示三人获胜的情况。
Output
输出"YES"或"NO",表示日志是否正确。
Sample Input 1
3
1
1
2
Sample Output 1
YES
Sample Input 2
2
1
2
Sample Output 2
NO
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include
using namespace std;
int a[100000];
struct stu{
int a; //shu
int b; // cishu
}b[100000];
bool cmp(stu a1,stu a2)
{
return a1.b<a2.b;
}
int main()
{
int n,i,j,m,k,sum,count;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
int flag=0; int t;
if(a[1]==3)
flag=1;
else
{
if(a[1]==1)
t=3;//不比赛的
else
t=1;
for(i=2;i<=n;i++)
{
if(a[i]!=a[i-1]&&a[i]!=t)
{
flag=1;
}
for(j=1;j<=3;j++)
{
if(j!=t&&j!=a[i-1])
{
t=j;
break;
}
}
}
}
if(flag==0)
printf("YES\n");
if(flag==1)
printf("NO\n");
return 0;
}