trang chủ / đề bài / zigzagdig

Chữ Số Zíc Zắc

Đề bài

Mô tả

Cho hai số nguyên dương L và R, đếm số lượng số nguyên trong đoạn [L,R] có các chữ số tạo thành dãy zíc zắc.

Một số có dãy chữ số d0,d1,d2,…,dk−1 (từ trái sang phải) được gọi là zíc zắc nếu:

  • Với mọi vị trí chẵn i (i=0,2,4,…) mà i+1<k: di<di+1 (tăng nghiêm ngặt)
  • Với mọi vị trí lẻ i (i=1,3,5,…) mà i+1<k: di>di+1 (giảm nghiêm ngặt)

Nói cách khác, các chữ số phải luân phiên tăng rồi giảm: d0<d1>d2<d3>d4<…

Các số có một chữ số luôn là zíc zắc.

Dữ liệu vào

Một dòng chứa hai số nguyên dương L và R.

Dữ liệu ra

Một số nguyên duy nhất — số lượng số zíc zắc trong đoạn [L,R].

Ràng buộc

  • 1≤L≤R≤1018

Ví dụ

Input Output Giải thích
1 30 24 Các số một chữ số 1 đến 9 đều zíc zắc (9 số). Trong các số hai chữ số từ 10 đến 30: cần d0<d1. Các số thỏa mãn là 12,13,…,19 (8 số), 23,24,…,29 (7 số) — tổng cộng 15 số hai chữ số. Vậy đáp án là 9+15=24.
100 200 44 Các số ba chữ số abc cần a<b và b>c. Ví dụ: 120,130,131,132,140,…,192,… đều là zíc zắc. Tổng cộng có 44 số thỏa mãn trong đoạn [100,200].

Ghi chú

Số 192 là zíc zắc vì 1<9>2. Số 123 không phải zíc zắc vì 2<3 ở vị trí lẻ (cần giảm, không phải tăng).

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