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ự 0 và 1. 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 q là cnt0,q−cnt1,q, trong đó cnt0,q và cnt1,q lần lượt là số lần xuất hiện của 0 và 1 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 (1≤T≤100).
  • Với mỗi test:
    • Dòng đầu chứa hai số nguyên n và x (1≤n≤105, −109≤x≤109).
    • 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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0