Logo
(追記) (追記ここまで)

4713번 - Road Rally 다국어채점 준비 중

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB0000.000%

문제

Consider a race track laid out on a rectangular grid, like this:

An ‘x’ or ‘X’ denotes a wall or barrier of some kind. Each numeric digit indicates a checkpoint. A motorcycle starts at checkpoint ‘0’ and must visit each numbered checkpoint in order, ending the course at the highest-numbered checkpoint.

Movement of the motorcycle is constrained as follows: In the first second, the motorcycle must move to one of the 8 neighbors of its starting position. Each second after that, the motorcycle may move to a point P offset by the same horizontal and vertical distance by which the motorcycle moved in the previous second, or it may move to any of the eight neighbors of that point P. The motorcycle may not, however, land outside the grid or on an ‘x’ or ‘X’. It may, however, leap over one or more x’s or X’s as long as it lands in an empty square or at a checkpoint.

For example, in the layout above, the rider might move according to the sequence shown as ‘a’, ‘b’, ‘c’, ... as shown below:

and then on to the first checkpoint in 6 seconds.

Write a program to find the shortest time required to start at ‘0’ and end at the final checkpoint, landing upon each intervening checkpoint in the order indicated by the digits. The motorcycle may land on a checkpoint out of order while on its way to another checkpoint, but does not receive credit for having visited that checkpoint unless it has already visited all of the lower-numbered checkpoints.

입력

Input consists of multiple race courses. Each course begins with a line containing two integers, w, and h, denoting the width and height of the track. You are guaranteed that 1 ≤ w ≤ 40 and 1 ≤ h ≤ 40. A zero value for w and h denoted the end of the input.

This is followed by h lines, each line containing w characters. These define the race track as explained above. Each track will have an area of at least 2 and will contain at least two checkpoints (‘0’ and ‘1’) and no more than 10 checkpoints. Where more than two checkpoints are presented, the checkpoints will be in strict sequence — there will be no “gaps” in the numbering.

출력

Print the minimum # of seconds required to complete each course as an integer, one per line. If it is not possible to complete a course, print ‘-1’ instead.

제한

예제 입력 1

5 5
xxxxx
x 0 x
x 12x
x x
xxxxx
10 3
xxxxxxxxxx
x 0x 1 x
xxxxxxxxxx
10 2
xxxxxxxxxx
x 0xx 1 x
30 15
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxx xxxxx xxx xx
xxxxx xxx xx x
xx xx x x x
x xx 2 x x x
x xx x x
x xxxxxxxxxxxxxx x x
x xxxxxxxxxxxxxxxxxxxx x
x 3 xxxxxxxxxxxxxx x
x xxxxxxxx x
x x
x xxx xxx 1 x
x xxx 0 x x
x x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
0 0

예제 출력 1

2
5
-1
16

힌트

출처

ICPC > Regionals > North America > Mid-Atlantic Regional > 2011 Mid-Atlantic Regional Programming Contest H번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /