View Code of Problem 17

main()
{
  int m,n,i,j,js,a,b,c,d,x,k=0;
  int s[10][10],y[10][10];
  for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
	  y[i][j]=0;
  scanf("%d %d",&n,&m);
  for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
      scanf("%d",&s[i][j]);
  for(i=0;i<=n+1;i++)
  {
    s[i][0]=0;
    s[i][m+1]=0;
  }
  for(i=1;i<=m;i++)
  {
    s[0][i]=0;
    s[n+1][i]=0;
  }
  for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    {
	  if(y[i][j]!=1)
	  {
        js=a=b=c=d=0;
        while(a!=1000||b!=1000||c!=1000||d!=1000)
		{
          y[i][j]=1;
          a=b=c=d=1000;
          if(s[i+1][j]>s[i][j]) a=s[i+1][j]-s[i][j];
          if(s[i-1][j]>s[i][j]) b=s[i-1][j]-s[i][j];
          if(s[i][j+1]>s[i][j]) c=s[i][j+1]-s[i][j];
          if(s[i][j-1]>s[i][j]) d=s[i][j-1]-s[i][j];
          x=(a<b?a:b)<(c<d?c:d)?(a<b?a:b):(c<d?c:d);
          if(x==1000) break;
          if(x==a) i=i+1;
          if(x==b) i=i-1;
          if(x==c) j=j+1;
          if(x==d) j=j-1;
          js++;
		}
	  }
      if(js>k) k=js;
    }
  printf("%d",k);
}

Double click to view unformatted code.


Back to problem 17