www.pudn.com > zhejiang_university_acm_onlinejudge_code.rar > zp1066.cpp
//--------------------------------------------------------------------------- #include#pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused #include int main(int argc, char* argv[]) { int y[4]={0,-1,1,0}; int x[4]={-1,0,0,1}; int n,cs,i,j,k,t,a[15][15],r[30][30]={0}; cin>>n; cs=0; while (n) { for (i=1;i<=n;i++) for (j=1;j<=n;j++) cin>>a[i][j]; for (j=1;j<=n+n+1;j++) { r[1][j]=0; r[n+n+1][j]=0; } for (i=2;i<=n+n;i++) for (j=1;j<=n+n+1;j++) r[i][j]=-1; for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { if (a[i][j]>0) { r[i+i][j+j+1]=3; r[i+i][j+j-1]=2; r[i+i][j+j]=0; } if (a[i][j]<0) { r[i+i-1][j+j]=1; r[i+i+1][j+j]=4; r[i+i][j+j]=0; } } for (j=1;j<=n;j++) if (!a[i][j]) { r[i+i][j+j]=0; t=2; for (k=1;k<=4;k++) if (t && r[i+i+x[k-1]][j+j+y[k-1]]<0) { r[i+i+x[k-1]][j+j+y[k-1]]=k; t--; if (k==2) k++; } } } if (cs) cout< >n; } return 0; } //---------------------------------------------------------------------------