Dịch vòng
Đề bài
Mô tả
Cho một bảng gồm hàng và cột, trong đó mỗi ô chứa một chữ số 0 hoặc 1. Trong một nước đi, bạn có thể chọn một hàng bất kỳ của bảng và dịch vòng (cyclic shift) các giá trị trong hàng đó một ô sang trái hoặc một ô sang phải.
Dịch vòng một hàng sang phải nghĩa là giá trị của mỗi ô (trừ ô cuối cùng) được dịch sang ô liền kề bên phải, còn giá trị của ô cuối cùng được đưa về ô đầu tiên. Dịch vòng sang trái được thực hiện tương tự nhưng theo chiều ngược lại.
Hãy xác định số nước đi ít nhất cần thực hiện để tồn tại ít nhất một cột của bảng chỉ chứa toàn chữ số 1.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên và — số hàng và số cột của bảng.
- dòng tiếp theo, mỗi dòng chứa ký tự "0" hoặc "1" mô tả nội dung một hàng của bảng.
Dữ liệu ra
- In ra một số nguyên duy nhất: số nước đi ít nhất cần thực hiện để có một cột toàn chữ số 1.
- Nếu không thể đạt được, in ra .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 6 101010 000100 100000 |
3 | Dịch hàng thứ hai sang phải 1 lần, dịch hàng thứ ba sang trái 2 lần; khi đó cột thứ 5 sẽ toàn chữ số 1. |
| 2 3 111 000 |
-1 | Hàng thứ hai không có chữ số 1 nào, nên không cột nào có thể toàn 1. |
Bình luận