漂亮的草坪
漂亮的草坪时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:90 测试通过:31
描述
Tom的花园里有一个草坪,他把它分成N*M个方块。一开始,所有的广场上都长着草。他剪去一些方块上的草,并认为仅符合这两个条件,这块草坪才算漂亮:
(1)不是所有的方块都长着草。
(2)两块剪去草的方块不能相连。
如果两块共一条边,那么就算是连着的。现在问题来了:Tom的草坪漂亮吗?
Tom的草坪
输入
输入包含多个测试案例!
每个测试案例包含两个整数N,M(1<=N,M<=10)开始,这两个数占一行,中间用空格隔开。接下来是Tom的草坪的描述。有N行,每行有M个整数,用空格隔开。0表示该方块被剪去草,1表示该方块长着草。
一行上如果是N=0且M=0,表示输入的结束,这行不要处理。
输出
一个测试用例输出一行。
如果这块草坪是漂亮的,输出“Yes”,否则输出“No”(不包括引号)。
样例输入
2 2
1 0
0 1
2 2
1 1
0 0
2 3
1 1 1
1 1 1
0 0
样例输出
Yes
No
No
请求各位怎么做?#include <iostream>
using namespace std;
int main()
{
int n,m,a[10][10],j,i,k=0,c;
while(cin>>n>>m,n||m)
{
for(i=0;i<n;i++)//3330;
for(j=0;j<m;j++)
cin>>a[i][i];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i][j]==1)
k++;k=0;
if(k<(n*m))
{
if(i==1||j==1||i==n-1||j==m-1)
{
if(a[i][j]!=a[i-1][j]&&a[i][j]!=a[i+1][j]&&a[i][j]!=a[i][j-1]&&a[i][j]!=a[i][j+1])
{ c=1;break;}
else
{ c=0;break;}
}
if(i>1&&j>1&&i<n-1&&j<m-1)
{
if(a[i][j]!=a[i-1][j]==0&&a[i][j]!=a[i+1][j]==0&&a[i][j]!=a[i][j-1]==0&&a[i][j]!=a[i][j+1]==0)
c=1;
}
else
{c=0;break;}
}
else
c=0;
}
if(c==1)
{cout<<"yes"<<endl;break;}
else if(c==0)
{cout<<"no"<<endl;break;}
}
}
return 0;
}
哪里错了????