Xây đường hầm

Đề bài

Mô tả

Cho một hành tinh phẳng dạng lưới ô vuông kích thước n×n, các hàng và cột được đánh số từ 1 đến n. Ô ở giao của hàng r và cột c được ký hiệu là (r,c). Mỗi ô hoặc là đất, hoặc là nước.

Alice đang ở ô đất (r1,c1) và muốn đi tới ô đất (r2,c2). Mỗi bước, cô có thể di chuyển sang một ô kề cạnh theo một trong bốn hướng (lên, xuống, trái, phải), nhưng chỉ được đi trên ô đất (không thể đi qua ô nước).

Vì vậy hành trình của Alice có thể bất khả thi. Để giúp cô, bạn được phép xây nhiều nhất một đường hầm nối hai ô đất bất kỳ. Đường hầm cho phép đi tự do giữa hai đầu của nó. Chi phí xây đường hầm nối hai ô (rs,cs)(rt,ct) là:

(rsrt)2+(csct)2

Hãy tìm chi phí nhỏ nhất để xây nhiều nhất một đường hầm sao cho Alice có thể đi từ (r1,c1) tới (r2,c2). Nếu không cần xây đường hầm nào thì chi phí là 0.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, kích thước lưới.
  • Dòng thứ hai chứa hai số nguyên r1c1, ô Alice đang đứng.
  • Dòng thứ ba chứa hai số nguyên r2c2, ô Alice muốn tới.
  • n dòng tiếp theo, mỗi dòng là một xâu gồm n ký tự. Ký tự thứ j của dòng thứ i là 0 nếu ô (i,j) là đất, hoặc 1 nếu là nước.

Đảm bảo (r1,c1)(r2,c2) đều là ô đất.

Dữ liệu ra

In ra một số nguyên là chi phí nhỏ nhất để Alice có thể đi từ (r1,c1) tới (r2,c2).

Ràng buộc

  • 1n50
  • 1r1,c1,r2,c2n

Ví dụ

Input Output Giải thích
5
1 1
5 5
00001
11111
00111
00110
00110
10 Xây đường hầm giữa (1,4)(4,5) với chi phí (14)2+(45)2=10. Alice đi từ (1,1) tới (1,4), dùng hầm sang (4,5), rồi đi tới (5,5).
3
1 3
3 1
010
101
010
8 Bắt buộc xây hầm giữa (1,3)(3,1), chi phí (13)2+(31)2=8.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0