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

Mã PIN

Đề bài

Mô tả

Mã PIN là một xâu gồm đúng 4 chữ số (mỗi chữ số nằm trong khoảng 0..9). Mã PIN được phép bắt đầu bằng chữ số 0, ví dụ: 7013, 0000, 0990 đều là các mã PIN hợp lệ.

Polycarp có n thẻ ngân hàng, thẻ thứ i có mã PIN là pi. Polycarp muốn tất cả n 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ừ 1 đến 4) 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 để n mã PIN trở nên đôi một khác nhau, đồng thời chỉ ra một cách đặt lại n mã PIN tương ứng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t (1t100) — 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 n (2n10) — số thẻ.
  • n dòng tiếp theo, mỗi dòng chứa một mã PIN pi độ dài đúng 4 chỉ gồm các chữ số.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra n+1 dòng:

  • Dòng đầu tiên là k — số bước thay đổi ít nhất.
  • n 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á k 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

  • 1t100
  • 2n10
  • Mỗi mã PIN có độ dài đúng 4 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 3 trong 4 thẻ để cả 4 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ừ 1 thành 0.

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