1010.Reports
Problem Description
Because of Covid-19, Kanade needs to report every time when entering and leaving school. Now you want to check if Kanade’s reports on a certain day are correct.
A sequence of reports is correct if and only if there does not exist two consecutive and same reports.
Input
There are T test cases in this problem.
The first line has one integer T.
For every test case:
The first line has one integer n which denotes the number of times Kanade reported on a certain day.
The second line has n integers a1,a2,a3,⋯,an, ai denotes the type of the i-th report. ai=0 denotes a leaving school report and ai=1 denotes an entering school report.
1≤T≤100
3≤n≤50
0≤ai≤1
Output
For every test case, output ``YES’’ if Kanade’s reports are correct, otherwise output ‘‘NO’’ (without quotes)
Sample Input
4
3
1 1 1
3
1 0 1
5
0 1 0 1 0
4
1 0 1 1
Sample Output
NO
YES
YES
NO
代码:
#include<iostream>
using namespace std;
int array[1000][1000];
int use[1000];
int main()
{
int n;
cin>>n;
int i,j,k,flag=1,stanum=0;
int sum=0;
for(i=0;i<n*2;i=i+2)
{
cin>>array[i][0];
for(j=0;j<array[i][0];j++)
{
cin>>array[i+1][j];
}
for(k=0;k<array[i][0]-1;k++)
{
if(array[i+1][k]==array[i+1][k+1])
{
flag=0;
break;
}
else
continue;
}
if(flag==0)
{
use[stanum]=0;
stanum++;
}
else if(flag==1)
{
use[stanum]=1;
stanum++;
}
flag=1;
}
for(i=0;i<n;i++)
{
if(use[i]==0)
cout<<"NO"<<endl;
else if(use[i]==1)
cout<<"YES"<<endl;
}
}