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; 
} 
//---------------------------------------------------------------------------