COCI '17 Contest 3 #4 Portal

View as PDF

Submit solution

Points: 12 (partial)
Time limit: 1.0s
Memory limit: 256M

Problem type

The protagonist of this task, Chell, must solve a new puzzle GLaDOS has come up with. Chell is in a room whose layout can be represented as a matrix of dimensions N rows and M columns.

Each field can be one of the following:

  • Obstructed field - there is a wall in it (denoted as #),
  • The field where Chell is initially (denoted as C),
  • The field where Chell must get to in order to solve the puzzle (denoted as F), or
  • An empty field (denoted as .).

Chell is carrying a so-called portal gun, a gun with which you can create portals in the walls.

In each move, she can do one of the following:

  • Move to an adjacent field using one move up, down, left or right (she cannot move to the field with a wall in it). This move lasts one unit of time.
  • Create a portal in the wall by turning towards a wall, not necessarily an adjacent one, in the direction up, down, left or right and shooting. The portal will be created only on the side of the wall it was hit from. In each moment, at most two portals can be active. If a new portal is being created in the moment when two portals are already active, the one that was created earlier will disappear. It is not possible to create a new portal at the position of another existing portal. This move lasts a negligible amount of time, i.e. zero amounts of time.
  • If she's at a field that is adjacent to a wall and there's a portal on her side of the wall, she can step into the portal and exit to a non-obstructed field with another portal. This move is possible if there are two active portals and lasts one unit of time.

Chell wants to know the minimal amount of time it takes for her to solve the puzzle, i.e. to reach the field denoted as F.

Please note: The room will always have walls on the sides, and letters C and F will appear only once in the matrix.

Input Specification

The first line of input contains the positive integers N and M (4 \le N, M \le 500), the numbers from the task.

Each of the following N lines contains M characters that describe the layout of the room.

Output Specification

You must output the minimal amount of time it takes to solve the puzzle, or nemoguce (Croatian for impossible) if it is not possible to solve it.

Scoring

In test cases worth 50\% of total points, it will hold 4 \le N, M \le 15.

Sample Input 1

4 4
####
#.F#
#C.#
####

Sample Output 1

2

Sample Input 2

6 8
########
#.##..F#
#C.##..#
#..#...#
#.....##
########

Sample Output 2

4

Sample Input 3

4 5
#####
#C#.#
###F#
#####

Sample Output 3

nemoguce

Explanation for Sample Output 2

The puzzle can be solved in 8 moves, illustrated in the pictures below.

In the first move, we turn towards the left wall, shoot and create a portal that appears on the wall in the 3^\text{rd} row and 1^\text{st} column (coordinates (3,1)) from the right side.

In the second move, we create a portal from the upper side of the wall at coordinates (6,2).

In the third move, we step into the portal at coordinates (3,1) and exit at coordinates (5,2) - a non-obstructed field with the second portal.

In the fourth move, we turn right and create a portal from the left side of the wall at coordinates (5,7).

Since there are already two portals, the one at field (3,1) disappears.

In the fifth move, we step into the portal at coordinates (6,2) and exit at coordinates (5,6) with the second portal.

In the sixth move, we create a new portal from the lower side of the wall at coordinates (1,6), making the portal at coordinates (6,2) disappear.

In the seventh move, we step into the portal at coordinates (5,7) and exit at coordinates (2,6).

Finally, in the eighth move, we move one place to the right to end the game.

The portal creation in moves 1, 2, 4 and 6 lasts \text{zero} amounts of time, whereas the rest of the move last \text{one} unit of time, so the total time needed to solve the puzzle is 4 units of time.


Comments


  • 0
    d  commented on March 20, 2023, 9:26 a.m.

    For a version with higher limits, see btoi14p5.