Dịch vòng

Đề bài

Mô tả

Cho một bảng gồm n hàng và m 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 nm — số hàng và số cột của bảng.
  • n dòng tiếp theo, mỗi dòng chứa m 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 1.

Ràng buộc

  • 1n100
  • 1m104

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

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0