Đề bài
Trên một lưới kích thước ô vuông đơn vị, người ta đặt một quân cờ vào ô trên cùng bên trái. Các ô được điền số từ 1 đến theo mô hình xoắn ốc, bắt đầu từ ô trên cùng bên trái và hướng sang phải.
Trên lưới, mỗi ô hoặc có màu đen hoặc màu trắng. Ô màu đen hiển thị một hố đen, không thể di chuyển quân cờ vào ô này. Ô màu trắng biểu thị một vị trí hợp lệ, có thể di chuyển quân cờ vào ô này.
Với một số nguyên cho trước, bạn cần tìm cách di chuyển quân cờ đến ô được đánh số bằng cách thực hiện một số bước di chuyển như sau: “giả sử quân cờ đang ở ô ghi số thì bạn có thể di chuyển nó vào một trong các ô ghi số với điều kiện ô đó phải có màu trắng”.
Hãy lập trình xác định hai thông tin sau:
- Cần thực hiện ít nhất bao nhiêu bước để di chuyển quân cờ đến ô được đánh số ?
- Gọi là số cách di chuyển hợp lệ khi quân cờ đang ở ô màu trắng được đánh số , hãy tính giá trị: .
Hình dưới minh họa một bàn cờ với . Với , từ ô có số 13 ta có thể đưa quân cờ đến ô có số 15 hoặc 17 nên .
Dữ liệu vàospiralp.inp
- Dòng 1: Chứa ba số nguyên ;
- Tiếp theo là dòng, mỗi dòng chứa số nguyên 0 hoặc 1 mô tả lưới. Với số 0 đại diện cho ô màu trắng, số 1 đại diện cho ô màu đen.
Kết quả raspiralp.out
- Ghi trên một dòng gồm hai số nguyên là hai thông tin tìm được. là số bước di chuyển tối thiểu để quân cờ đến được ô được đánh số , là giá trị . Nếu không có cách đưa quân cờ đến ô được đánh số thì .
Ràng buộc
- Subtask 1: 19% điểm có ;
- Subtask 2: 13% điểm có ;
- Subtask 3: 18% điểm có ;
- Subtask 4: 50% điểm có .
Ví dụ
Ví dụ 1
4 5 3 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1
7 2
Giải thích
Một trong các cách di chuyển chỉ với bảy bước là: . Không có cách nào di chuyển với số bước ít hơn bảy.
Hai vị trí có nhiều cách di chuyển hợp lệ nhất là 15 và 17.
- Vị trí được đánh số 15 có thể di chuyển đến 17 hoặc 18
- Vị trí được đánh số 17 có thể di chuyển đến 18 hoặc 20
Ví dụ 2
1 5 1 0 1 0 0 1
-1 1
Giải thích
Không có cách di chuyển đến ô được đánh số 5.
