#ABC301E. Pac-Takahashi

Pac-Takahashi

Pac-Takahashi

题目描述

我们有一个 HHWW 列的网格。 设 (i,j)(i,j) 表示从上数第 ii 行、从左数第 jj 列的格子。 网格中的每个格子是以下之一:起点、终点、空地、墙壁、糖果。 (i,j)(i,j) 用字符 Ai,jA_{i,j} 表示:若 Ai,j=A_{i,j}= S 则为起点,若 Ai,j=A_{i,j}= G 则为终点,若 Ai,j=A_{i,j}= . 则为空地,若 Ai,j=A_{i,j}= # 则为墙壁,若 Ai,j=A_{i,j}= o 则为糖果。 保证起点和终点各恰好一个,糖果至多 1818 个。

高桥君现在位于起点。 他可以反复移动到上下左右相邻的非墙壁格子。 他想在至多 TT 步内到达终点,判断是否可能。 若可能,求出在必须到达终点的前提下,途中最多能经过多少个糖果格子。 即使多次经过同一个糖果格子,也只计数一次。

输入格式

输入按以下格式从标准输入给出:

HH WW TT
A1,1A1,2A1,WA_{1,1}A_{1,2}\dots A_{1,W}
\vdots
AH,1AH,2AH,WA_{H,1}A_{H,2}\dots A_{H,W}

输出格式

若无法在至多 TT 步内到达终点,输出 -1。 否则,输出在必须到达终点的前提下,途中最多能经过的糖果格子数。

样例

3 3 5
S.G
o#o
.#.
1

如果走 44 步,如 $(1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) \rightarrow (1,3)$,可以经过 1 个糖果格子并到达终点。 他无法在 5 步或更少步内经过 2 个糖果格子并到达终点,因此答案为 11

注意,走 55 步如 $(1,1) \rightarrow (2,1) \rightarrow (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3)$ 虽然经过了 2 个糖果格子,但由于没有到达终点,所以不合法。

3 3 1
S.G
.#o
o#.
-1

他无法在 1 步或更少步内到达终点。

5 10 2000000
S.o..ooo..
..o..o.o..
..o..ooo..
..o..o.o..
..o..ooo.G
18

数据范围

  • 1H,W3001 \le H,W \le 300
  • 1T2×1061 \le T \le 2\times 10^6
  • HHWWTT 是整数。
  • Ai,jA_{i,j} 是 S、G、.、#、o 之一。
  • 恰好有一对 (i,j)(i,j) 满足 Ai,j=A_{i,j}= S。
  • 恰好有一对 (i,j)(i,j) 满足 Ai,j=A_{i,j}= G。
  • 至多有 1818(i,j)(i,j) 满足 Ai,j=A_{i,j}= o。
难度 提高
通过率 20%
尝试 5
已通过 1
ID
2929
类型
传统题
Time Limit
5000ms
Memory Limit
1024MiB
上传者
标签