Tiền tố vô hạn
Nộp bài giải
Điểm:
5,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
C++, Dart, Go, Groovy, Java, Javascript, Kotlin, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Typescript, Zig
Cho xâu nhị phân độ dài chỉ gồm các ký tự 0 và 1. Xây dựng xâu vô hạn bằng cách nối liên tiếp vô số bản sao của , tức là . Ví dụ với thì
Định nghĩa cân bằng của một xâu là , trong đó và lần lượt là số lần xuất hiện của 0 và 1 trong .
Hãy đếm số tiền tố (kể cả tiền tố rỗng) của có cân bằng đúng bằng . Nếu số tiền tố thoả mãn là vô hạn thì in ra -1.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên — số test ().
- Với mỗi test:
- Dòng đầu chứa hai số nguyên và (, ).
- Dòng thứ hai chứa xâu nhị phân độ dài .
Tổng trên tất cả các test không vượt quá .
Dữ liệu ra
In ra dòng, mỗi dòng là đáp án cho một test: số tiền tố có cân bằng bằng , hoặc -1 nếu vô hạn.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 6 10 010010 5 3 10101 1 0 0 2 0 01 |
3 0 1 -1 |
Test 1: ba tiền tố có cân bằng có độ dài . Test 4: có cân bằng tổng bằng nên cứ sau mỗi chu kỳ cân bằng lại quay về — vô hạn tiền tố thoả mãn. |
| 1 5 -3 11111 |
1 | toàn 1 nên cân bằng giảm dần Chỉ duy nhất tiền tố độ dài có cân bằng . |
Bình luận