Xâu Tuyệt Vời

Xem dạng PDF

Gửi bài giải

Điểm: 1,50 (OI)
Giới hạn thời gian: 3.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Bài đang bị tạm khoá, time limit được set rất thấp

Một xâu nhị phân ~t~ được gọi là tuyệt vời nếu đồng thời thỏa mãn 2 điều kiện sau đây:

  • Tồn tại ít nhất một ký tự 1 trong xâu

  • Độ dài của xâu ~t~ chia hết cho số lượng ký tự 1 trong xâu. Ví dụ: 1, 1010, 111 đều là các xâu tuyệt vời; còn 0, 110, 01010 thì không.

Cho xâu nhị phân ~s~, đếm số lượng xâu con của ~s~ là xâu tuyệt vời.

Xâu ~a~ được gọi là xâu con của xâu ~b~ khi xóa đi một vài ký tự (có thể là ~0~) ở đầu và một vài ký tự (có thể là ~0~) ở cuối xâu ~b~ thì có được xâu ~a~.

Input

Gồm một dòng duy nhất chứa xâu nhị phân ~s~ (~1\leq |s|\leq 100\ 000~) chỉ bao gồm các ký tự 01.

Output

Gồm một dòng duy nhất chứa số nguyên dương là số xâu con tuyệt vời của ~s~.

Sample Input 1

111

Sample Output 1

6

Sample Input 2

01010

Sample Output 2

10

Sample Input 3

0000

Sample Output 3

0

Sample Input 4

1111100000

Sample Output 4

25

Notes

Trong ví dụ đầu tiên, tất cả xâu con của ~s~ đều tuyệt vời.

Trong ví dụ thứ hai, các xâu con tuyệt vời của ~s~ là: 1 (~2~ lần), 01 (~2~ lần), 10 (~2~ lần), 010 (~2~ lần), 1010, 0101.

Trong ví dụ thứ ba, không có xâu con nào tuyệt vời.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -22
    Loc2008  đã bình luận lúc 27, Tháng 12, 2023, 8:26

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.