trang chủ / đề bài / goodsubarr

Đếm dãy con tốt

Đề bài

Mô tả

Cho một mảng a1,a2,…,an gồm các chữ số từ 0 đến 9.

Một dãy con liên tiếp al,al+1,…,ar được gọi là tốt nếu tổng các phần tử của nó bằng đúng độ dài của nó:

∑i=lrai=r−l+1.

Hãy đếm số dãy con liên tiếp tốt của mảng a.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t , số lượng truy vấn.
  • Mỗi truy vấn gồm hai dòng:
    • Dòng thứ nhất chứa số nguyên n , độ dài mảng.
    • Dòng thứ hai chứa một xâu gồm n chữ số thập phân, chữ số thứ i là giá trị của ai.

Dữ liệu ra

Với mỗi truy vấn, in ra một dòng chứa số dãy con liên tiếp tốt của mảng tương ứng.

Ràng buộc

  • 1≤t≤1000
  • 1≤n≤105
  • Tổng n trên tất cả các truy vấn không vượt quá 105.

Ví dụ

Input Output Giải thích
3
3
120
5
11011
6
600005
3
6
1
Với a=[1,2,0] có 3 dãy con tốt: [1], [2,0] và [1,2,0].
Với a=[1,1,0,1,1] có 6 dãy con tốt: các vị trí 1, 2, [1,1] (vị trí 1..2), 4, 5 và [1,1] (vị trí 4..5).
Với a=[6,0,0,0,0,5] chỉ có 1 dãy con tốt: [0,0,0,0,5] (vị trí 2..6, độ dài 5, tổng 5).
1
4
1211
4 Với a=[1,2,1,1]: các dãy con tốt là [1] (vị trí 1), [1] (vị trí 3), [1] (vị trí 4), và [1,1] (vị trí 3..4). Lưu ý [2,1,1] có tổng 4 nhưng độ dài 3 nên không tốt.

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