trang chủ / đề bài / voi06_bishop

Quân tượng

Đề bài

Mô tả

Xét bàn cờ vuông kích thước n×n. Các dòng được đánh số từ 1 đến n, từ dưới lên trên. Các cột được đánh số từ 1 đến n từ trái qua phải. Ô nằm trên giao của dòng i và cột j được gọi là ô (i,j). Trên bàn cờ có m (0≤m≤n) quân cờ. Với m>0, quân cờ thứ i ở ô (ri,ci), i=1,2,…,m. Không có hai quân cờ nào ở trên cùng một ô. Trong số các ô còn lại của bàn cờ, tại ô (p,q) có một quân tượng. Mỗi một nước đi, từ vị trí đang đứng quân tượng chỉ có thể di chuyển đến được những ô trên cùng đường chéo với nó mà trên đường đi không phải qua các ô đã có quân.

Cần phải đưa quân tượng từ ô xuất phát (p,q) về ô đích (s,t). Giả thiết là ở ô đích không có quân cờ. Nếu ngoài quân tượng không có quân nào khác trên bàn cờ thì chỉ có 2 trường hợp: hoặc là không thể tới được ô đích, hoặc là tới được sau không quá 2 nước đi. Khi trên bàn cờ còn có các quân cờ khác, vấn đề sẽ không còn đơn giản như vậy.

Yêu cầu: Cho kích thước bàn cờ n, số quân cờ hiện có trên bàn cờ m và vị trí của chúng, ô xuất phát và ô đích của quân tượng. Hãy xác định số nước đi ít nhất cần thực hiện để đưa quân tượng về ô đích hoặc đưa ra số −1 nếu điều này không thể thực hiện được.

Dữ liệu vào

  • Dòng đầu tiên chứa 6 số nguyên n, m, p, q, s, t.
  • Nếu m>0 thì mỗi dòng thứ i trong m dòng tiếp theo chứa một cặp số nguyên ri,ci xác định vị trí quân thứ i.

Hai số liên tiếp trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Dữ liệu ra

Gồm 1 dòng duy nhất là số nước đi tìm được.

Ràng buộc

  • 1≤n≤200, 0≤m≤n.
  • 1≤p,q,s,t,ri,ci≤n; ô (p,q) và ô (s,t) không có quân cờ.

Subtasks

  • Subtask 1 (60% số test): n≤20.
  • Subtask 2 (40% số test): 20<n≤200.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
8 3 7 2 1 4
5 4
3 4
4 7
3 Nếu không có quân cờ nào khác thì chỉ cần 2 nước: (7,2)→(3,6)→(1,4), nhưng quân ở (5,4) chặn nước đầu tiên. Cách đi ít nước nhất là (7,2)→(6,3)→(4,1)→(1,4).
4 1 1 1 1 2
2 2
-1 Ô đích khác màu với ô xuất phát.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0