#include<iostream> #include<algorithm> #include<cstring> using namespace std; int n,m,flag; int a[15][15],f[15][15]; void fun(int x,int y,int d){ for(int i=x;i<x+d;++i){ for(int j=y;j<y+d;++j){ if(a[i][j]==0||f[i][j]==1) flag=0; f[i][j]=1; } } for(int i=y;i<y+d;++i) if(a[x-1][i]==1) flag=0; for(int i=y;i<y+d;++i) if(a[x+d][i]==1) flag=0; for(int i=x;i<x+d;++i) if(a[i][y-1]==1) flag=0; for(int i=x;i<x+d;++i) if(a[i][y+d]==1) flag=0; } int main(){ while(cin>>n>>m&&(n!=0||m!=0)){ int f1=0,f2=0; flag=1; memset(f,0,sizeof(f)); memset(a,0,sizeof(f)); for(int i=1;i<=n;++i){ for(int j=1;j<=m;++j){ scanf("%d",&a[i][j]); if(a[i][j]==0) f1=1; if(a[i][j]==1) f2=1; } } if(!f1){ cout<<"No"<<endl; continue; } for(int i=1;i<=n;++i){ for(int j=1;j<=m;j++){ if(a[i][j]==1&&f[i][j]==0){ int d=1; while(a[i][j+1]==1){ j++; d++; } fun(i,j-d+1,d); } } } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } } |
Double click to view unformatted code.