CF16A Flag(#模拟 -1.7)

题意翻译

根据一项新的ISO标准,每一个国家的国旗应该是一个n×m的格子场,其中每个格子最多有10种不同的颜色。并且国旗应该有条纹:旗帜的每一行应包含相同颜色的方块,相邻的行的颜色应该是不同的。Berland政府要求你找出他们的国旗是否符合新的ISO标准。

输入格式:

输入的第一行包含数n和m( ( 1<=n,m<=100 ),其中n为行数,m为列数。接下来

是对旗的描述:以下N行中的每一行包含m个字符。每个字符是0到9之间的数字,代表相应正方形的颜色。

输出格式:

如果国旗符合标准就输出YES,否则输出NO。

输入输出样例

输入样例#1

3 3
000
111
222

输出样例#1

YES

输入样例#2

3 3
000
000
111

输出样例#2

NO

输入样例#3

3 3
000
111
002

输出样例#3

NO

思路

不想写了,看代码吧。

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
string str[101];
int n,m;
int PosX(int a)
{
	int i;
	for(i=1;i<m;i++)
	{
		if(str[a][i]!=str[a][i-1])
			return 0;
	}
	return 1;
}
int main()
{
	ios::sync_with_stdio(false);
	int i;
	cin>>n>>m;
	for(i=1;i<=n;i++)
		cin>>str[i];
	if(!PosX(1))
	{
		cout<<"NO"<<endl;
		return 0; 
	}
	for(i=2;i<=n;i++)
	{
		if(!PosX(i))
		{
			cout<<"NO"<<endl;
			return 0;       
		}
		if(str[i]==str[i-1])
		{
			cout<<"NO"<<endl;
			return 0;
		}
	}
	cout<<"YES"<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/apro1066/article/details/81139909
1.7