Tiền tố vô hạn

Đề bài

Mô tả

Cho xâu nhị phân s độ dài n chỉ gồm các ký tự 01. Xây dựng xâu vô hạn t bằng cách nối liên tiếp vô số bản sao của s, tức là t=ssss. Ví dụ với s=10010 thì t=100101001010010

Định nghĩa cân bằng của một xâu qcnt0,qcnt1,q, trong đó cnt0,qcnt1,q lần lượt là số lần xuất hiện của 01 trong q.

Hãy đếm số tiền tố (kể cả tiền tố rỗng) của t có cân bằng đúng bằng x. 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 T — số test (1T100).
  • Với mỗi test:
    • Dòng đầu chứa hai số nguyên nx (1n105, 109x109).
    • Dòng thứ hai chứa xâu nhị phân s độ dài n.

Tổng n trên tất cả các test không vượt quá 105.

Dữ liệu ra

In ra T dòng, mỗi dòng là đáp án cho một test: số tiền tố có cân bằng bằng x, 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 10 có độ dài 28,30,32. Test 4: s=01 có cân bằng tổng bằng 0 nên cứ sau mỗi chu kỳ cân bằng lại quay về 0 — vô hạn tiền tố thoả mãn.
1
5 -3
11111
1 s toàn 1 nên cân bằng giảm dần 0,1,2,3, Chỉ duy nhất tiền tố độ dài 3 có cân bằng 3.

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 1.26.3 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