trang chủ / bài tập / rotequal

Xoay xâu bằng nhau

Đề bài

Mô tả

Cho n xâu s1,s2,,sn chỉ gồm các chữ cái Latin thường và có độ dài bằng nhau.

Trong một bước, ta chọn một xâu si, xoá ký tự đầu tiên của nó rồi nối ký tự đó vào cuối xâu. Ví dụ, xâu "coolmike" sau một bước sẽ trở thành "oolmikec".

Hãy tìm số bước ít nhất cần thực hiện để tất cả n xâu trở nên giống hệt nhau, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số lượng xâu.
  • n dòng tiếp theo, dòng thứ i chứa xâu si.

Dữ liệu ra

In ra số bước ít nhất cần thiết để tất cả các xâu bằng nhau, hoặc 1 nếu không tồn tại cách nào.

Ràng buộc

  • 1n50
  • Các xâu có độ dài bằng nhau, độ dài nằm trong khoảng từ 1 đến 50
  • Các xâu chỉ gồm chữ cái Latin thường

Ví dụ

Input Output Giải thích
4
xzzwo
zwoxz
zzwox
xzzwo
5 Đưa tất cả về xâu zwoxz: xâu thứ nhất cần 2 bước, xâu thứ hai cần 0 bước, xâu thứ ba cần 1 bước, xâu thứ tư cần 2 bước, tổng cộng 5 bước. Không có xâu đích nào cho tổng nhỏ hơn.
2
molzv
lzvmo
2 Xoay xâu molzv hai bước ta được lzvmo, khi đó hai xâu bằng nhau.
3
aa
aa
ab
-1 Xâu ab không thể trở thành aa bằng phép xoay, nên không có đáp án.
3
kc
kc
kc
0 Ba xâu đã bằng nhau sẵn.

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.47 awk 1.3.4 gcc 16.2.0 csc 6.12.0.200 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 kotlinc 2.4.10 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0