Third Avenue

AtCoder
IDabc184_e
Time3000ms
Memory256MB
Difficulty
There is a town represented as a two-dimensional grid with $H$ horizontal rows and $W$ vertical columns. A character $a_{i,j}$ describes the square at the $i$\-th row from the top and $j$\-th column from the left. Here, $a_{i,j}$ is one of the following: `S` , `G` , `.` , `#` , `a`, ..., and `z`. `#` represents a square that cannot be entered, and `a`, ..., `z` represent squares with teleporters. Takahashi is initially at the square represented as `S`. In each second, he will make one of the following moves: * Go to a non-`#` square that is horizontally or vertically adjacent to his current position. * Choose a square with the same character as that of his current position, and teleport to that square. He can only use this move when he is at a square represented as `a`, ..., or `z`. Find the shortest time Takahashi needs to reach the square represented as `G` from the one represented as `S`. If the destination is unreachable, report `-1` instead. ## Constraints * $1 \le H, W \le 2000$ * $a_{i,j}$ is `S`, `G`, `.`, `#`, or a lowercase English letter. * There is exactly one square represented as `S` and one square represented as `G`. ## Input Input is given from Standard Input in the following format: $H$ $W$ $a_{1,1}\dots a_{1,W}$ $\vdots$ $a_{H,1}\dots a_{H,W}$ [samples]
Samples
Input #1
2 5
S.b.b
a.a.G
Output #1
4

Let $(i, j)$ denote the square at the $i$\-th row from the top and $j$\-th column from the left.  
Initially, Takahashi is at $(1, 1)$. One way to reach $(2, 5)$ in four seconds is:

*   go from $(1, 1)$ to $(2, 1)$;
*   teleport from $(2, 1)$ to $(2, 3)$, which is also an `a` square;
*   go from $(2, 3)$ to $(2, 4)$;
*   go from $(2, 4)$ to $(2, 5)$.
Input #2
11 11
S##...#c...
...#d.#.#..
..........#
.#....#...#
#.....bc...
#.##......#
.......c..#
..#........
a..........
d..#...a...
.#........G
Output #2
14
Input #3
11 11
.#.#.e#a...
.b..##..#..
#....#.#..#
.#dd..#..#.
....#...#e.
c#.#a....#.
.....#..#.e
.#....#b.#.
.#...#..#..
......#c#G.
#..S...#...
Output #3
\-1
API Response (JSON)
{
  "problem": {
    "name": "Third Avenue",
    "description": {
      "content": "There is a town represented as a two-dimensional grid with $H$ horizontal rows and $W$ vertical columns.   A character $a_{i,j}$ describes the square at the $i$\\-th row from the top and $j$\\-th column",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 3000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc184_e"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There is a town represented as a two-dimensional grid with $H$ horizontal rows and $W$ vertical columns.  \nA character $a_{i,j}$ describes the square at the $i$\\-th row from the top and $j$\\-th column...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments