Find the enclosing rectangle for the area. Calculate minX, maxX, minY, maxY.

Now find whether the enclosing area lies to left and right side of the
path**. Note that the path is not self-intersecting.

currX = startX;
area = 0
if ( left )  // enclosing area to left of path
{
  for each move
  {
     if ( north )  increment currX;
     if ( south ) decrement currX;
     if ( east )   area -= ( currX - minX ) * blocks
     if ( west )   area += ( currX - minX ) * blocks
  }
}
else  // enclosing are to right of path
{
  for each move
  {
     if ( north )  increment currX;
     if ( south ) decrement currX;
     if ( east )   area += ( currX - minX ) * blocks
     if ( west )   area -= ( currX - minX ) * blocks
  }
}

** I am not sure how to determine on which side of the path the enclosing
area lies. Probably, if number of right turns > number of left turns, then
it lies on the right side. This seems naive, maybe incorrect, I am not too
sure about it. Can anyone comment?

~Vishal

On 10/5/07, adak <[EMAIL PROTECTED]> wrote:
>
>
> For each test case
>   Do
>       call function Read_it()  /* read the next move */
>       call Count_it()             /* count the # of squares walked
> through */
>   while (move length is > 0)
>
>   print area moved through for that case
>
> next
>
> That would be my starting pseudo-code.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to