CF926C题解
修改日志
:对解法进一步的说明。
思路
太水了,不应该是绿。
遍历一遍 数组,处理出每条条纹的长度,如果当前条纹是第一条,则将长度保存至变量 ,否则,与 进行比较,如果不相等,则输出 NO,否则不操作。
注意最后一条要特判。
代码
#include<bits/stdc++.h>
using namespace std;
int n,k,b,p=-1;
int main(){
scanf("%d",&n);
b=2;
for(int i=1;i<=n;i++){
int a;
scanf("%d",&a);
if(a==b||b==2) k++;
else{
if(p==-1) p=k;
else if(p!=k) return !printf("NO");
k=1;
}
b=a;
}
if(p!=-1&&p!=k) return !printf("NO");//最后一条特判
return !printf("YES");
}

浙公网安备 33010602011771号