原来的'/n'被替换为' ',改了一下。
#include
<
iostream
>
#include < vector >
using namespace std;
const int N = 4 ;
vector < vector < int > > grass;
int m,n;
struct Point
... {
int row,col;
} ;
Point dir[N] = ... {...{1,0},...{0,1},...{-1,0},...{0,-1}} ;
bool inGrass(Point p)
... {
return p.row >=0 && p.row <m && p.col >=0 && p.col<n;
}
bool isBeautiful(Point p)
... {
for(int i=0;i<N;i++)
...{
Point t;
t.row=p.row+dir[i].row;
t.col=p.col+dir[i].col;
if (inGrass(t)==true && grass[t.row][t.col]==0) return false;
}
return true;
}
bool run()
... {
cin>>m>>n;
if (m==0 && n==0) return false;
grass.resize(m);
int i,cnt=0;
for(i=0;i<m;i++)
...{
grass[i].resize(n);
for(int j=0;j<n;j++)
...{
cin>>grass[i][j];
if (grass[i][j]==0) cnt++;
}
}
if (cnt==0)//nums of 0=0
...{
cout << "No"<<endl;
return true;
}
for(i=0;i<m;i++)
...{
for(int j=0;j<n;j++)
if (grass[i][j]==0)
...{
Point t=...{i,j};
if (isBeautiful(t)==false)
...{
cout << "No"<<endl;
return true;
}
}
}
cout << "Yes"<<endl;
return true;
}
int main() ... {
while(run());
return 0;
}
#include < vector >
using namespace std;
const int N = 4 ;
vector < vector < int > > grass;
int m,n;
struct Point
... {
int row,col;
} ;
Point dir[N] = ... {...{1,0},...{0,1},...{-1,0},...{0,-1}} ;
bool inGrass(Point p)
... {
return p.row >=0 && p.row <m && p.col >=0 && p.col<n;
}
bool isBeautiful(Point p)
... {
for(int i=0;i<N;i++)
...{
Point t;
t.row=p.row+dir[i].row;
t.col=p.col+dir[i].col;
if (inGrass(t)==true && grass[t.row][t.col]==0) return false;
}
return true;
}
bool run()
... {
cin>>m>>n;
if (m==0 && n==0) return false;
grass.resize(m);
int i,cnt=0;
for(i=0;i<m;i++)
...{
grass[i].resize(n);
for(int j=0;j<n;j++)
...{
cin>>grass[i][j];
if (grass[i][j]==0) cnt++;
}
}
if (cnt==0)//nums of 0=0
...{
cout << "No"<<endl;
return true;
}
for(i=0;i<m;i++)
...{
for(int j=0;j<n;j++)
if (grass[i][j]==0)
...{
Point t=...{i,j};
if (isBeautiful(t)==false)
...{
cout << "No"<<endl;
return true;
}
}
}
cout << "Yes"<<endl;
return true;
}
int main() ... {
while(run());
return 0;
}