Đi đến trường

Đề bài

Mô tả

Dima cần đi từ nhà đến trường trong thời gian ngắn nhất.

Thành phố Dima đang ở là một lưới hình chữ nhật kích thước n×m. Mỗi ô (i,j) trên lưới được mô tả bởi một số aij:

  • Nếu aij=1: ô bị chặn, không thể đi qua.
  • Nếu aij=0: ô trống, có thể đi qua.
  • Nếu aij=x với 1x109: ô chứa một cổng dịch chuyển với chi phí x. Ô có cổng cũng là ô có thể đi qua.

Từ một cổng bất kỳ, Dima có thể nhảy đến một cổng khác bất kỳ. Thời gian di chuyển từ cổng (i,j) đến cổng (x,y) bằng aij+axy (tổng chi phí của hai cổng).

Ngoài ra, Dima có thể đi từ một ô đến một ô trống kề cạnh trong thời gian w. Dima có thể đi qua một ô có cổng mà không sử dụng cổng đó.

Ban đầu Dima ở ô (1,1) (góc trên-trái), trường ở ô (n,m) (góc dưới-phải). Hai ô này được đảm bảo là ô trống (không phải 1).

Hãy tìm thời gian nhỏ nhất Dima cần để đi đến trường. Nếu không thể đến trường, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, w (2n,m2·103; 1w109).
  • n dòng tiếp theo, mỗi dòng chứa m số nguyên aij (1aij109).

Dữ liệu ra

In ra một số nguyên duy nhất — thời gian nhỏ nhất để đi đến trường, hoặc 1 nếu không đến được.

Ràng buộc

  • 2n,m2·103
  • 1w109
  • 1aij109

Ví dụ

Input Output Giải thích
5 5 1
0 -1 0 1 -1
0 20 0 0 -1
-1 -1 -1 -1 -1
3 0 0 0 0
-1 0 0 0 0
14 Hàng giữa bị chặn hoàn toàn nên phải dùng cổng. Đi từ (1,1) đến cổng (1,4) với chi phí 1 (qua đường (1,1)(2,1)(2,2)(2,3)(2,4)(1,4), mất 5 bước, tổng 5·1+1=6), nhảy đến cổng (4,1) chi phí 3 (tổng cộng 1+3=4), rồi đi đến (5,5) mất 4 bước. Tổng: 6+4+4=14.
2 3 1000000000
0 0 0
0 0 0
3000000000 Không có cổng, đi bộ thẳng 3 bước với w=109.
2 5 1
0 0 0 0 0
0 0 0 0 0
5 Đi bộ thẳng 5 bước.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0