trang chủ / bài tập / safecode

Mã két sắt

Đề bài

Mô tả

Một mã két sắt là một dãy chữ số, không có chữ số 0 ở đầu. Bạn được cho một gợi ý là xâu s có cùng độ dài với mã, mô tả các ràng buộc của mã:

  • Nếu si là ký tự ? thì chữ số ở vị trí i có thể là bất kỳ chữ số nào từ 0 đến 9.
  • Nếu si là một chữ số (từ 0 đến 9) thì chữ số ở vị trí i của mã đúng bằng si.
  • Nếu si là một chữ cái từ A đến J thì: mọi vị trí có cùng chữ cái phải chứa cùng một chữ số, và các vị trí có chữ cái khác nhau phải chứa các chữ số khác nhau.

Ví dụ, gợi ý ?JGJ9 có một số mã hợp lệ như 51919, 12329, 93539 và một số mã không hợp lệ như 56669, 00111, 03539.

Ký tự đầu tiên của s được đảm bảo khác ký tự 0 (mã không có chữ số 0 ở đầu).

Hãy đếm số lượng mã hợp lệ khớp với gợi ý đã cho.

Dữ liệu vào

Một dòng duy nhất chứa xâu s gồm các ký tự ?, 0-9, A-J.

Dữ liệu ra

In ra một số nguyên duy nhất là số lượng mã khớp với gợi ý.

Ràng buộc

  • 1|s|105
  • Ký tự đầu tiên của s khác 0.
  • Kết quả có thể là một số rất lớn.

Ví dụ

Input Output Giải thích
AJ 81 Hai chữ cái khác nhau A, J nhận hai chữ số phân biệt, và A (đầu dãy) khác 0: có 9×9=81 cách.
1?AA 100 Vị trí đầu cố định là 1. Dấu ? có 10 lựa chọn. Chữ cái A có 10 lựa chọn: 10×10=100.

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