Minigolf | 프로그래밍의 벗 PivotOJ
PivotOJ

Minigolf

시간 제한: 4000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2021 — finalBOJ 21370

문제

Du spelar minigolf på ett R×CR\times C rutnät. På ett slag kan du putta golfbollen valfritt antal steg upp till KK rakt i en av de fyra riktningarna upp, ner, höger, vänster. Du kan såklart inte putta bollen igenom en vägg eller utanför banan.

Din uppgift är att beräkna det minsta antalet puttar som behövs för att få ner bollen i hålet.

입력

Den första raden innehåller tre heltal RR, CC och KK (1R×C10000001 \le R\times C \le 1\,000\,000 och 1K10000001\le K \le 1\,000\,000) -- antal rader, antalet kolumner och hur långt du kan putta.

Därefter följer RR rader, vardera med CC tecken, som beskriver minigolfbanan:

  • "." betyder att rutan är tom.
  • "#" betyder att rutan har en vägg i sig.
  • "S" betyder att denna rutan är den du startar från. Det kommer finnas exakt ett "S" i indatan.
  • "G" betyder att denna rutan är den med hålet i. Det kommer finnas exakt ett "G" i indatan.

Det är garanterat att det är möjligt att nå hålet från startrutan.

출력

Skriv ut ett heltal -- det minsta antalet puttar du behöver för att skjuta bollen i hålet.

예제

예제 1

입력
2 3 2
S.G
...
출력
1

예제 2

입력
2 5 1
S#...
...#G
출력
7

예제 3

입력
16 10 100
..######..
.#......#.
#...G....#
#........#
.#......#.
..#....#..
..#....#..
..###..#..
..#....#..
..#..###..
..#....#..
..###..#..
..#....#..
..#....#..
..#.S..#..
..######..
출력
7
코드를 제출하려면 로그인하세요.