Số hiệu xe buýt

Đề bài

Mô tả

Vasya nhìn thấy một chiếc xe buýt mang số n, nhưng anh không chắc mình nhớ đúng. Anh có thể đã nhớ sai thứ tự các chữ số, và có thể đã "nhìn thấy" một vài chữ số nhiều lần hơn thực tế. Tuy nhiên mọi chữ số mà anh nhìn thấy chắc chắn đều xuất hiện trong số thật của chiếc xe.

Nói cách khác, gọi S là tập các chữ số phân biệt xuất hiện trong n. Một số m được coi là một khả năng của số xe thật nếu:

  • Tập các chữ số phân biệt của m đúng bằng S (mỗi chữ số trong S xuất hiện ít nhất một lần trong m, và m không chứa chữ số nào ngoài S).
  • Với mỗi chữ số d, số lần d xuất hiện trong m không vượt quá số lần d xuất hiện trong n.
  • m không có chữ số 0 ở đầu.

Hãy đếm số lượng các số m khác nhau thỏa mãn các điều kiện trên.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên n (1n1018). Số n được cho không có chữ số 0 ở đầu.

Dữ liệu ra

In ra một số nguyên duy nhất là số lượng các khả năng của số xe thật.

Ràng buộc

  • 1n1018.

Ví dụ

Input Output Giải thích
97 2 Chỉ có hai khả năng: 97 và 79.
2028 13 Các khả năng theo thứ tự tăng dần: 208, 280, 802, 820, 2028, 2082, 2208, 2280, 2802, 2820, 8022, 8202, 8220. Chữ số 2 xuất hiện tối đa hai lần, các chữ số 0 và 8 tối đa một lần.
10 1 Chữ số 1 và 0 mỗi loại một lần. Vì không được đứng đầu bằng 0 nên chỉ có duy nhất số 10.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0