QOJ.ac

QOJ

Time Limit: 2 s - 30 s Memory Limit: 2048 MB Total points: 100 Difficulty: [show]

#18226. Число ду-ду-ду-ду-ду

Statistics

Судоку обычно состоит из $n$ блоков размером $\sqrt{n} \times \sqrt{n}$.

Каждая строка и каждый столбец должны содержать числа от $1$ до $n$ без пропусков и повторений. Каждый блок (область, выделенная жирными линиями, обычно размером $\sqrt{n} \times \sqrt{n}$) также должен содержать числа от $1$ до $n$ без пропусков и повторений. Заполненное судоку должно одновременно удовлетворять всем трем условиям.

На рисунке представлен пример судоку размера $n=9$.

Дан неполный вариант судоку. Требуется добавить любое количество чисел так, чтобы итоговое судоку имело ровно два решения. Среди всех таких способов заполнения необходимо выбрать тот, при котором разница между двумя решениями максимальна. Разница определяется как количество ячеек, в которых значения в двух решениях различаются.

При этом для любых двух позиций в судоку, если $x_1, x_2$ — значения в первой позиции в двух решениях, а $y_1, y_2$ — значения во второй позиции, то не должно одновременно выполняться $x_1\not=x_2, y_1\not=y_2, x_1\not=y_2, x_1 \not = y_1$.

Входные данные

Первая строка содержит число $n$ — размер судоку.

Далее следуют $n$ строк, в каждой из которых по $n$ чисел $a_{i,j}$, представляющих неполное судоку. Число $0$ означает пустую ячейку.

Выходные данные

Выведите $n$ строк по $n$ чисел — заполненное поле. Если существует несколько способов заполнения, обеспечивающих максимальную разницу между двумя решениями, выведите любой из них.

Примеры

Входные данные 1

4
3 0 0 0
0 0 0 0
0 3 0 0
0 0 0 3

Выходные данные 1

3 0 0 0
0 0 0 2
0 3 0 0
2 0 0 3

Примечание

Два решения для примера выше:

3 2 1 4
1 4 3 2
4 3 2 1
2 1 4 3

и

3 2 4 1
4 1 3 2
1 3 2 4
2 4 1 3

Сравнив их, можно увидеть, что разница составляет $8$. Можно доказать, что это один из способов достичь максимальной разницы $8$ для данного условия.

Подзадачи

Подзадача Номер теста Баллы Ограничения Дополнительные условия
1 1 8 $n=4$
1 11 8 $n=4$
1 12 8 $n=4$
1 13 8 $n=4$
2 2 6 $n=9$ Изначально задано 0 чисел
2 3 6 $n=9$ Не более 11 ненулевых чисел
2 4 6 $n=9$ Не более 11 ненулевых чисел
2 5 6 $n=9$ Не более 11 ненулевых чисел
2 6 6 $n=9$ Не более 11 ненулевых чисел
2 7 6 $n=9$ Не более 11 ненулевых чисел
2 8 6 $n=9$ Не более 11 ненулевых чисел
2 9 6 $n=9$ Не более 11 ненулевых чисел
2 10 6 $n=9$ Не более 11 ненулевых чисел
3 14 7 $n=16$ Изначально задано 0 чисел
4 15 7 $n=16$ Не более 20 ненулевых чисел

Для подзадачи 1 ограничение по времени составляет 2 с. Для остальных — 30 с.

Для всех тестов: $a_{i,j} \in [0, n]$, гарантируется, что существует хотя бы один способ заполнения, приводящий к ровно двум решениям.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.