Nguồn: VNG
Trò chơi đẩy bi diễn ra trên một lưới ô vuông vô hạn. 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 được đánh số từ dưới lên trên. Ô nằm tại giao điểm của dòng x và cột y được gọi là ô (x,y). Trên lưới có một số ô cấm, các ô còn lại là ô tự do.
Khi bắt đầu trò chơi, một số viên bi xuất hiện trên lưới, mỗi viên bi chiếm đúng một ô và không có ô nào chứa nhiều hơn một viên bi. Người chơi phải chọn một ô tự do trên lưới để làm hố; nếu ô hố được chọn đang chứa bi, viên bi đó sẽ biến mất ngay lập tức. Ở mỗi bước, người chơi có thể chọn một ô chứa bi và đẩy viên bi đó sang một trong bốn ô kề cạnh (hiện không chứa bi); nếu viên bi bị đẩy vào ô hố, viên bi đó sẽ biến mất. Nhiệm vụ của người chơi là đẩy toàn bộ các viên bi trên lưới vào hố với số bước ít nhất.
Yêu cầu: Cho biết vị trí các ô cấm trên lưới và vị trí các ô chứa bi, hãy chọn một ô tự do làm hố và tìm cách đẩy tất cả các viên bi trên lưới vào hố với số bước ít nhất.
Đầu vào:
n là số lượng ô cấm.n dòng tiếp theo chứa hai số nguyên xi,yi mô tả ô (xi,yi) là ô cấm.m là số lượng ô chứa bi.m dòng tiếp theo chứa hai số nguyên uj,vj mô tả ô (uj,vj) là ô chứa bi.Đầu ra: In ra một số nguyên duy nhất là số bước ít nhất để đẩy toàn bộ các viên bi trên lưới vào hố. In ra −1 nếu không tồn tại cách chọn hố để đẩy được tất cả các viên bi vào hố.
100;100;100;100;Ví dụ 1:
Đầu vào:
1
2 2
2
1 2
3 2
Đầu ra:
4
Ví dụ 2:
Đầu vào:
0
2
1 1
5 5
Đầu ra:
8