Xâu con chia hết cho 4

Đề bài

Mô tả

Trên màn hình máy tính bỏ túi hiện lên một xâu s chỉ gồm các chữ số từ 0 đến 9.

Một xâu con liên tiếp của s là một dãy khác rỗng gồm các ký tự đứng liền nhau trong s. Mỗi xâu con liên tiếp được hiểu là một số nguyên viết ở hệ thập phân, và số này được phép có chữ số 0 ở đầu (ví dụ xâu con 04 được hiểu là số 4).

Hãy đếm số lượng xâu con liên tiếp của s mà giá trị của nó chia hết cho 4. Hai xâu con được coi là khác nhau nếu chúng có vị trí bắt đầu hoặc vị trí kết thúc khác nhau, kể cả khi nội dung giống hệt nhau.

Dữ liệu vào

Một dòng duy nhất chứa xâu s gồm các chữ số từ 0 đến 9.

Dữ liệu ra

In ra một số nguyên duy nhất: số lượng xâu con liên tiếp của s chia hết cho 4.

Ràng buộc

  • 1≤|s|≤3·105
  • s chỉ gồm các ký tự 0–9
  • Kết quả có thể rất lớn, hãy dùng kiểu số nguyên 64-bit

Ví dụ

Input Output Giải thích
04 3 Ba xâu con thoả mãn: 0 (vị trí 1), 4 (vị trí 2) và 04 (vị trí 1–2), đều có giá trị chia hết cho 4.
124 4 Bốn xâu con: 12, 4, 24, 124. Các xâu con còn lại là 1 và 2 đều không chia hết cho 4.
5810438174 9 Chín xâu con thoả mãn, trong đó có các xâu con một chữ số 8, 0, 4, 8 và các xâu con dài hơn kết thúc bằng cặp chữ số 08, 04, 44.

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