Mã PIN
Đề bài
Mô tả
Mã PIN là một xâu gồm đúng chữ số (mỗi chữ số nằm trong khoảng ). Mã PIN được phép bắt đầu bằng chữ số , ví dụ: 7013, 0000, 0990 đều là các mã PIN hợp lệ.
Polycarp có thẻ ngân hàng, thẻ thứ có mã PIN là . Polycarp muốn tất cả mã PIN này đôi một khác nhau. Trong một bước, Polycarp chọn một thẻ, chọn một vị trí trong mã PIN của thẻ đó (từ đến ) và đổi chữ số ở vị trí đó thành một chữ số khác bất kì.
Hãy giúp Polycarp xác định số bước ít nhất cần thực hiện để mã PIN trở nên đôi một khác nhau, đồng thời chỉ ra một cách đặt lại mã PIN tương ứng.
Dữ liệu vào
- Dòng đầu chứa số nguyên () — số bộ dữ liệu.
- Mỗi bộ dữ liệu bắt đầu bằng một dòng chứa số nguyên () — số thẻ.
- dòng tiếp theo, mỗi dòng chứa một mã PIN độ dài đúng chỉ gồm các chữ số.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra dòng:
- Dòng đầu tiên là — số bước thay đổi ít nhất.
- dòng tiếp theo là các mã PIN sau khi thay đổi, theo đúng thứ tự xuất hiện ở đầu vào. Các mã PIN này phải đôi một khác nhau và có thể nhận được từ các mã PIN ban đầu bằng tổng cộng không quá bước.
Nếu có nhiều đáp án hợp lệ, in ra một đáp án bất kì.
Ràng buộc
- Mỗi mã PIN có độ dài đúng và chỉ gồm các chữ số.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 1234 0600 2 1337 1337 4 3139 3139 3139 3139 |
0 1234 0600 1 0337 1337 3 0139 1139 2139 3139 |
Bộ 1: hai mã PIN đã khác nhau nên không cần đổi. Bộ 2: đổi chữ số đầu của một thẻ là đủ. Bộ 3: phải đổi trong thẻ để cả mã trở nên đôi một khác nhau. |
| 1 3 1234 1234 1230 |
1 0234 1234 1230 |
Đổi chữ số đầu tiên của thẻ thứ nhất từ thành . |
Bình luận