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

Anti-Sudoku

Đề bài

Mô tả

Cho một lời giải đúng của một câu đố Sudoku — một bảng 9×9 gồm các chữ số từ 1 đến 9, trong đó mỗi hàng, mỗi cột và mỗi khối 3×3 (các khối được chia theo cách thông thường của Sudoku) đều chứa đủ cả 9 chữ số khác nhau.

Nhiệm vụ của bạn là thay đổi nhiều nhất 9 ô của bảng (chọn một ô (i,j) và đổi chữ số tại ô đó thành một chữ số bất kỳ trong khoảng [1;9]) sao cho bảng thu được trở thành một anti-sudoku, tức là bảng 9×9 thỏa mãn đồng thời:

  • Mọi chữ số trong bảng đều thuộc khoảng [1;9];
  • Mỗi hàng chứa ít nhất hai phần tử bằng nhau;
  • Mỗi cột chứa ít nhất hai phần tử bằng nhau;
  • Mỗi khối 3×3 chứa ít nhất hai phần tử bằng nhau.

Dữ liệu đảm bảo luôn tồn tại đáp án. Nếu có nhiều đáp án, bạn có thể in ra bất kỳ đáp án nào hợp lệ.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t — số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm 9 dòng, mỗi dòng gồm 9 ký tự từ 1 đến 9 không có khoảng trắng — lời giải đúng của một câu đố Sudoku.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra bảng kết quả gồm 9 dòng sau khi đã thay đổi nhiều nhất 9 ô để bảng trở thành anti-sudoku.

Ràng buộc

  • 1t104
  • Mỗi bảng dữ liệu vào là một lời giải Sudoku hợp lệ.

Ví dụ

Input Output Giải thích
1
154873296
386592714
729641835
863725149
975314628
412968357
631457982
598236471
247189563
254873296
386592724
729642835
863725249
975324628
422968357
632457982
598236472
247289563
Đổi cả 9 chữ số 1 thành 2. Mỗi hàng, cột và khối ban đầu có đúng một số 1 và một số 2, nên sau khi đổi sẽ có hai số 2 — thỏa mãn anti-sudoku, và chỉ thay đúng 9 ô.
1
216457839
754893621
398612475
479138562
831526947
625974183
567349218
943281756
182765394
226457839
754893622
398622475
479238562
832526947
625974283
567349228
943282756
282765394
Áp dụng cùng cách: thay mọi số 1 bằng 2. Đây chỉ là một trong nhiều đáp án hợp lệ.

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