IOI'94 - Day 1 - Problem 2: The Castle

     1   2   3   4   5   6   7
   #############################
 1 #   |   #   |   #   |   |   #
   #####---#####---#---#####---#   
 2 #   #   |   #   #   #   #   #
   #---#####---#####---#####---#
 3 #   |   |   #   #   #   #   #   
   #---#########---#####---#---#
 4 # ->#   |   |   |   |   #   #   
   #############################  (Figure 1)

#  = Wall
|  = No wall
-  = No wall
-> = It points to the wall to remove according to the example output.

Figure 1 shows the map of a castle. Write a program that calculates
  1. how many rooms the castle has
  2. how big the largest room is
  3. which wall to remove from the castle to make as large a room as possible.
The castle is divided into m * n (m<=50, n<=50) square modules. Each such module can have between zero and four walls.

Input Data

The map is stored in the INPUT.TXT file in the form of numbers, one for each module. INPUT.TXT for our example:
4
7
11 6 11 6 3 10 6
7 9 6 13 5 15 5
1 10 12 7 13 7 5
13 11 10 8 10 12 13

Output Data

In the OUTPUT.TXT file, the following are written on three lines: First the number of rooms, then the area of the largest room (counted in modules) and a suggestion of which wall to remove (first the row and then the column of the module next to the wall and finally the compass direction that points to the wall). In our example ("4 1 E" is one of several possibilities, you need only produce one):
5
9
4 1 E