QUÂN MÃ

Nguồn: None

Xét lưới ô vuông vô hạn trong đó có một số ô cấm, các ô còn lại là tự do. Các dòng và cột của lưới được đánh số theo thứ tự bởi các số nguyên ~…-3~ ~-2~ ~-1~ ~0~ ~1~ ~2~ ~3 …~ Các cột được đánh số từ trái sang phải, còn các dòng theo thứ tự từ dưới lên trên. Ô nằm trên giao của dòng ~x~ và cột ~y~ được gọi là ô ~(x,y)~. Một quân mã đặt ở ô xuất phát là ô ~(0,0)~. Sau một bước đi, ta có thể di chuyển quan mã đến một trong các ô ở đỉnh đối diện trên đường chéo của hình chữ nhật kích thước ~2×3~.

Yêu cầu: Cho biết tọa độ của các ô cấm, vị trí ô đích nơi quan mã cần đến, hãy tìm cách di chuyển quân mã từ ô (0,0) đến ô đích sao cho số lượng bước đi cần thực hiện là ít nhất.

Dữ liệu vào:

Dòng đầu chứa ~t~ ~(t≤3)~ là số lượng test, tiếp theo là ~t~ nhóm dòng, mỗi nhóm chứa dữ liệu về một test theo khuôn dạng sau:

  • Dòng đầu tiên chứa 2 số nguyên ~x_t,y_t~ được ghi cách nhau bởi dấu cách cho biết tọa độ của ô đích là ~(x_t,y_t)~;
  • Dòng thứ hai chứa số nguyên dương ~n~ ~(n≤1000)~ là số lượng ô cấm;
  • Dòng thứ ~i~ trong số ~n~ dòng tiếp theo chứa hai số ngueyen được ghi cách nhau một dấu cách ~x_i,y_i~ cho biết ~(x_i,y_i)~ là tọa độ của ô cấm thứ ~i~ ~(i=1,2,…,n)~.

Kết quả: Gồm ~t~ dòng, mỗi dòng chứa kết quả của một test tương ứng trong dữ liệu vào là số lượng bước đi ít nhất cần thực hiện để di chuyển quân mã từ ô xuất phát ~(0,0)~ đến ô đích. Ghi số ~-1~ nếu như không thể di chuyển quân mã đến ô đích.

Ràng buộc:

  • Có 50% số test có ~-10^3≤x_t,y_t≤10^3; -10^3≤x_i,y_i≤10^3~;
  • Có 50% số test khác có ~n=0~ và ~-10^9≤x_t,y_t≤10^9~.

Ví dụ:

Input:

1
2 4
0 

Output:

2 

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (12/13)
  2. QTuong (10/23)
  3. PLTKhanh11.3 (8/18)
Trong 7 ngày
  1. quechi (33/37)
  2. celebi_276 (24/57)
  3. ducdung192 (20/45)
Trong 30 ngày
  1. manhooh (121/290)
  2. bach2015 (86/178)
  3. dangphong3108 (73/102)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38641

Lưu Hải Phong - 2020
[email protected]