首页 > 代码库 > ZCMU新人训练赛-B
ZCMU新人训练赛-B
Tom‘s Meadow
Tom has a meadow in his garden. He divides it into N * M squares. Initially all the squares were covered with grass. He mowed down the grass on some of the squares and thinks the meadow is beautiful if and only if
- Not all squares are covered with grass.
- No two mowed squares are adjacent.
Two squares are adjacent if they share an edge. Here comes the problem: Is Tom‘s meadow beautiful now?
Input
The input contains multiple test cases!
Each test case starts with a line containing two integers N, M (1 <= N, M <= 10) separated by a space. There follows the description of Tom‘s Meadow. There‘re Nlines each consisting of M integers separated by a space. 0(zero) means the corresponding position of the meadow is mowed and 1(one) means the square is covered by grass.
A line with N = 0 and M = 0 signals the end of the input, which should not be processed
<b< dd="">
Output
One line for each test case.
Output "Yes" (without quotations) if the meadow is beautiful, otherwise "No"(without quotations).
<b< dd="">
Sample Input
2 2
1 0
0 1
2 2
1 1
0 0
2 3
1 1 1
1 1 1
0 0
<b< dd="">
Sample Output
Yes
No
No
1 #include <iostream> 2 using namespace std; 3 bool arr[10][10]; 4 int main() 5 { 6 int n,m; 7 while(cin>>n>>m&&n!=0) 8 { 9 bool flag=true;10 int sum=0;11 for(int i=0;i<n;i++)12 {13 14 for(int j=0;j<m;j++)15 {16 cin>>arr[i][j];17 sum+=arr[i][j];18 if((arr[i][j]==0&&j>0&&arr[i][j-1]==0)||(i>0&&arr[i-1][j]==0&&arr[i][j]==0))19 {20 flag=false;21 22 }23 }24 }25 26 if(flag&&sum!=m*n)27 cout<<"Yes"<<endl;28 else29 cout<<"No"<<endl;30 31 }32 return 0;33 }
ZCMU新人训练赛-B