시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 542 | 120 | 95 | 23.284% |
마알은 체스판 위의 말로, 1-마알, 2-마알, ..., 9-마알이 있다. K-마알은 한 번 이동할 때 나이트의 이동 방식 K번을 연속해서 사용할 수 있다. 체스판 위에 마알이 올라와 있다. 모든 마알이 한 곳에 모으려고 할 때, 최소 이동 횟수를 구해보자.
한 번에 마알 하나만 이동할 수 있고, 이동하는 중, 이동을 마친 후 같은 칸에 여러 개의 마알이 있어도 된다.
첫째 줄에 체스판의 세로 크기 N, 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 체스판의 정보가 첫 행부터 주어지며, 한 행의 정보는 공백없이 주어진다. 체스판의 빈 칸은 '.', 숫자 K는 해당 위치에 K-마알이 놓여 있음을 의미한다. 하나 이상의 마알이 있는 경우만 입력으로 주어진다.
모든 마알을 한 곳에 모으기 위한 이동 횟수의 최솟값을 출력한다. 만약, 모든 마알을 한 곳에 모을 수 없다면, -1을 출력한다.
3 4 ...1 .... 2...
2
8 8 ........ .1...... ........ ....3... ........ ........ .7...... ........
2
3 2 .. 2. ..
0
1 8 .1....1.
-1
10 10 9133632343 5286698232 8329333369 5425579782 4465864375 8192124686 3191624314 5198496853 1638163997 6457337215
121