QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 512 MB Total points: 100 Communication

#8969. Gazety

Statistics

Jeśli śledzicie wiadomości w mediach społecznościowych, z pewnością słyszeliście już kilka różnych teorii spiskowych o rozmaitych tajnych organizacjach, które planują wszczepianie ludziom chipów za pomocą szczepionek, zatruwanie płynów ustrojowych fluorem i tym podobne rzeczy. Właśnie jedna z takich organizacji zapewniła niedawno młodemu Martinowi posadę dyrektora znanej chorwackiej gazety.

Organizacja zainteresowała się gazetą nie bez powodu. Potrzebuje bowiem sposobu na powolne i nieefektywne wysyłanie wiadomości wszystkim swoim członkom, a przy tym tworzenie jak największej liczby teorii spiskowych. Ze względu na pewne właściwości numeryczno-mistyczne organizacja poleciła Martinowi używać do przesyłania wiadomości niezwykłego medium. Zamiast ukrywać wiadomości w tekstach artykułów, musi je ukrywać w dziale łamigłówek gazety. Dokładniej, w sudoku.

Sudoku to plansza złożona z $9 \times 9$ pól, w niektórych z nich wpisano liczby od jednego do dziewięciu. Plansza jest podzielona na 9 wierszy, 9 kolumn i 9 kwadratowych bloków o rozmiarze $3 \times 3$. Sudoku uważa się za rozwiązane, gdy wszystkie pola są wypełnione liczbami od jednego do dziewięciu tak, aby w żadnym wierszu, kolumnie ani bloku liczby się nie powtarzały.

Zadaniem Martina jest napisanie programu, który zakoduje ciąg $N$ słów $s_i$ w $N$ planszach sudoku, a następnie odkoduje te plansze z powrotem na słowa.

Autorzy łamigłówek w gazecie nie pozwolą Martinowi umieścić w niej dowolnego sudoku. Przygotują łamigłówkę, usuwając pewną liczbę cyfr z rozwiązanej planszy zaproponowanej przez Martina, zależnie od wymaganego poziomu trudności. Program Martina musi więc kodować słowa w rozwiązanych planszach sudoku.

Przełożeni Martina wierzą, że każdy członek organizacji powinien umieć rozwiązać taką łamigłówkę, więc część programu służąca do odkodowywania musi odkodowywać jedynie wypełnione plansze.

Programowanie nie jest mocną stroną Martina, dlatego prosi was o napisanie takiego programu.

Wejście

W pierwszym wierszu znajdują się dodatnie liczby całkowite $M$ i $N$ ($M = 1$ lub $M = 2$, $1 \le N \le 30$). Jeśli $M = 1$, program powinien zakodować $N$ napisów w planszach sudoku, a jeśli $M = 2$, musi odkodować $N$ plansz sudoku z powrotem na napisy.

Jeśli $M = 1$, w $i$-tym z następnych $N$ wierszy znajdują się dodatnia liczba całkowita $l_i$ oraz napis $s_i$ ($1 \le |s_i| = l_i \le 15$). Napisy $s_i$ składają się wyłącznie z małych liter alfabetu angielskiego.

Jeśli $M = 2$, w następnych $9N$ wierszach znajduje się $N$ macierzy o rozmiarze $9 \times 9$, reprezentujących plansze sudoku, które należy odkodować. Macierze zawsze będą poprawnymi rozwiązaniami sudoku: będą składać się ze znaków 1–9, a żadna liczba nie będzie powtarzać się w bloku $3 \times 3$, wierszu ani kolumnie macierzy.

Wyjście

Jeśli $M = 1$, wypisz w $9N$ wierszach $N$ plansz sudoku reprezentujących zakodowane wartości napisów $s_i$ z wejścia. Wypisane plansze mogą składać się wyłącznie ze znaków 1–9, a liczby w wierszach, kolumnach i blokach $3 \times 3$ nie mogą się powtarzać.

Jeśli $M = 2$, wypisz w $N$ wierszach napisy odkodowane z plansz sudoku podanych na wejściu.

Podzadania

Wasze rozwiązanie będzie testowane w dwóch etapach. Najpierw zostanie uruchomione z oficjalnymi danymi wejściowymi, w których $M = 1$. Jeśli wynikiem działania rozwiązania będzie ciąg $N$ poprawnych macierzy, w drugim etapie rozwiązanie zostanie uruchomione ponownie z macierzami wypisanymi w pierwszym etapie. Jeśli napisy wypisane przez program w drugim etapie będą takie same jak napisy w oficjalnych danych wejściowych, otrzymacie wszystkie punkty za ten test.

Czas działania rozwiązania jest sumą czasów działania obu etapów oceniania.

Podzadanie Liczba punktów Ograniczenia
1 10 $1 \le l_i \le 3$
2 10 $1 \le l_i \le 7$
3 4 $1 \le l_i \le 11$, a napisy na wejściu są generowane losowo
4 6 $1 \le l_i \le 11$
5 4 $1 \le l_i \le 12$, a napisy na wejściu są generowane losowo
6 6 $1 \le l_i \le 12$
7 7 $1 \le l_i \le 13$, a napisy na wejściu są generowane losowo
8 8 $1 \le l_i \le 13$
9 9 $1 \le l_i \le 14$, a napisy na wejściu są generowane losowo
10 11 $1 \le l_i \le 14$
11 12 $1 \le l_i \le 15$, a napisy na wejściu są generowane losowo
12 13 $1 \le l_i \le 15$

Przykład

Wejście 1

1 1
6 sudoku

Wyjście 1

139245678
628137459
457689123
214356897
375498216
896712345
541873962
763921584
982564731

Wejście 2

2 1
139245678
628137459
457689123
214356897
375498216
896712345
541873962
763921584
982564731

Wyjście 2

sudoku

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.