QCJ1 - Mountain Walking

In this problem your task is to program a robot that will output some data about a terrain after traversing it. Input will be in the form a 2D picture containing only 4 types of characters:

  • '/' : Forward slash, indicating ascent.
  • '\' : Backward slash, indicating descent.
  • '_' : Underscore, denoting horizontal plane.

Additionally there will be only SPACE (Ascii value = 32) characters. (Refer to the below figure).

The robot starts its journey at bottom left corner of the terrain and after traversing stops at the bottom right corner. Also note that the robot will always start and end at the SAME LEVEL.

Given the picture as input you will have to output 2 things. The "Total Walk Distance" i.e, the total length of the path and the type of steps taken to complete the Journey. For the sake of simplification we will assume that each character ('/' , '\' and '_') has length = 1.

Now Consider the following example:

       _
      / \/\
     /     \
    /       \

The robot starts at the bottom left corner and takes the following path:

  1. Ascends 3 steps
  2. Moves forward by 1 step
  3. Descends 1 step
  4. Ascends 1 step
  5. Descends 3 steps

and robot ends it journey at bottom right corner (At the same level). The Total Walk Distance = 9.

Input

First line of input will be an integer N (N < 20). The next line will be an empty. Then exactly N lines follow describing the terrain.

You can assume the following for the input (terrain).

  • Input will contain only four types of characters (" ", "_", "/", "\").
  • The terrain will start and end at the same level.
  • Each line is guaranteed to have at least one non white space character.
  • Maximum width of any line won't be larger than 200.
  • There will be no trailing white spaces.

Output

First line of output should be the Total Walk Distance followed by the description of the terrain. Each line must be ONE of the following

  • Up xx steps
  • Down xx steps
  • Walk xx steps

Where xx is an integer. Refer to the examples for exact specification.

Example

Input:
3

  /\
 /  \
/    \

Output:
Total Walk Distance = 6
Up 3 steps
Down 3 steps
Input:
2
 _____  ___
/     \/   \

Output:
Total Walk Distance = 12
Up 1 steps
Walk 5 steps
Down 1 steps
Up 1 steps
Walk 3 steps
Down 1 steps
Input:
5

        _
   /\__/ \
  /       \
 /         \/\_
/              \

Output:
Total Walk Distance = 16
Up 4 steps
Down 1 steps
Walk 2 steps
Up 1 steps
Walk 1 steps
Down 3 steps
Up 1 steps
Down 1 steps
Walk 1 steps
Down 1 steps

Added by:abhijith reddy d
Date:2010-02-01
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS OBJC PERL6 SQLITE VB.NET
Resource:Own

hide comments
2019-10-01 10:16:56
Haha I'm also doing"Got wrong answer 8 times for writing Steps instead of steps"
2013-06-27 18:00:42 Vaibhav Agarwal
not difficult..... just a lot of cases...
2013-05-16 09:44:49 joud zouzou
piece of cake...:)
2013-01-11 14:04:17 strings
nice problem... certainly not "a piece of cake" !!
2012-11-29 21:05:45 saket diwakar
piece of cake...:)
2012-07-09 20:26:11 a
my code dosent depndng on how many blank lines are there but still wrong answr
i hv use d concept of BLUE.MARY
2011-07-18 16:21:12 arbit
Got wrong answer 8 times for writing Steps instead of steps :D :D :D :D

Last edit: 2011-07-18 16:21:35
2010-08-02 18:20:26 Javier (dreivaj)
it's problem have a trick, USE two while loops to handle empty line
after inputting number of lines

while( (c = getchar() ) != '\n');
while( (c = getchar() ) != '\n');

how told: vimal raj sharma
2010-06-20 12:32:14 Sandeep Gupta
please suggest any typical case... I have handled all the below comments... still I am getting wrong answer.Please help!!
2010-03-10 05:39:51 Iqram Mahmud
I think someone should fix the input. I had the same issue of XilinX. If you assume n is the number of lines you'll get WA. If you take till EOF, you'll get AC.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.