Chia hết 36

Đề bài

Mô tả

Cho một số tự nhiên N. Bạn được phép hoán vị (sắp xếp lại) vị trí các chữ số của N để tạo thành một số tự nhiên mới.

Hãy tìm số tự nhiên có giá trị nhỏ nhất có thể tạo thành sao cho số đó chia hết cho 36 và không có chữ số 0 vô nghĩa ở đầu. Nếu không thể tạo ra bất kỳ số nào thỏa mãn điều kiện, hãy in ra 1.

Dữ liệu vào

  • Một dòng duy nhất chứa số tự nhiên N.

Dữ liệu ra

  • Một số duy nhất là kết quả của bài toán (số nhỏ nhất chia hết cho 36 được tạo thành). Nếu không tồn tại số thỏa mãn, in ra 1.

Ràng buộc

  • Số lượng chữ số của N nằm trong khoảng từ 1 đến 105.
  • N0 và không có chữ số 0 vô nghĩa ở đầu (trừ trường hợp N=0).
  • 80% số test tương ứng với 80% số điểm thỏa mãn: số chữ số của N103.
  • 20% số test còn lại tương ứng với 20% số điểm không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
432 324 Các chữ số ban đầu là 2,3,4. Các số tự nhiên có thể tạo thành là 234,243,324,342,423,432. Trong đó, chỉ có 324432 chia hết cho 36. Số nhỏ nhất là 324.
30312 10332 Các chữ số là 0,1,2,3,3. Số nhỏ nhất chia hết cho 36 tạo thành từ các chữ số này, không có 0 vô nghĩa ở đầu, là 10332 (vì 10332=36×287).
123 -1 Không có cách sắp xếp nào để tạo ra số chia hết cho 36. Kết quả là 1.

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