Bài tập về nhà
Nộp bài giải
Điểm:
5,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Cho một tập hợp gồm chữ số. Bạn cần tạo ra số nguyên lớn nhất từ các chữ số trong tập sao cho số đó chia hết cho cả , và (tương đương chia hết cho ).
Bạn được phép sử dụng không nhất thiết tất cả các chữ số trong tập, nhưng mỗi chữ số chỉ được dùng số lần đúng bằng số lần nó xuất hiện trong tập. Số tạo ra không được có chữ số ở đầu, ngoại lệ duy nhất là khi số đó chính là (gồm đúng một chữ số ).
Nếu không thể tạo được số nào thỏa mãn, hãy in .
Dữ liệu vào
- Dòng đầu chứa số nguyên — số chữ số trong tập.
- Dòng thứ hai chứa chữ số (mỗi chữ số nằm trong khoảng ), cách nhau bởi dấu cách.
Dữ liệu ra
- In ra số lớn nhất thỏa mãn yêu cầu, hoặc nếu không tồn tại.
Ràng buộc
- Mỗi giá trị trong tập là một chữ số từ đến .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 0 |
0 | Chỉ có một chữ số , và bản thân chia hết cho . |
| 11 3 4 5 4 5 3 5 3 4 4 0 |
5554443330 | Tổng các chữ số bằng ; ta có thể dùng tất cả các chữ số. Sắp xếp giảm dần được , chia hết cho . |
| 8 3 2 5 1 5 2 2 3 |
-1 | Không có chữ số nào nên không thể tạo số chia hết cho , do đó vô nghiệm. |
Bình luận