Logo
(追記) (追記ここまで)

28430번 - Тайное послание 서브태스크다국어투 스텝

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB1278814.035%

문제

Это задача с двойным запуском. На каждом тесте ваше решение будет запущено два раза.

На уроке информатики Алеся и Борис изучают криптографию. Ребята решили изобрести свой способ шифрования сообщений.

Алеся выбирает $k$ различных целых чисел от 1ドル$ до $n$ и обозначает получившееся множество как $T$. Алеся хочет передать Борису в качестве сообщения множество $T$ в зашифрованном виде. Для этого по множеству $T$ Алеся построит и передаст Борису другое множество $R,ドル также состоящее из целых чисел от 1ドル$ до $n$.

Ребята не хотят, чтобы после шифрования размер сообщения изменялся, поэтому $R$ также должно содержать ровно $k$ чисел. А ещё они считают, что если $T$ и $R$ будут содержать хотя бы один общий элемент, то их шифрование будет недостаточно надежным. Поэтому не должно существовать числа, которое входит и в $T,ドル и в $R,ドル то есть множества $T$ и $R$ не должны пересекаться. Гарантируется, что $k \le n / 2,ドル поэтому по множеству $T$ всегда возможно построить хотя бы одно множество $R$.

Когда Борис получит зашифрованное сообщение $R,ドル он должен будет его расшифровать и получить исходное сообщение $T$.

Помогите Алесе и Борису придумать и реализовать алгоритмы шифрования и дешифрования. При первом запуске ваша программа будет выступать в роли Алеси, а при втором запуске --- в роли Бориса.

입력

В первой строке входных данных дано одно число $a,ドル равное 1ドル$ или 2ドル$ --- номер запуска вашей программы.

Во второй строке дано одно число $m$ --- количество сообщений (1ドル \le m \le 300,000円$), которое ваша программа должна зашифровать (в первом запуске) или расшифровать (во втором запуске).

Следующие 2ドルm$ строк содержат описания $m$ сообщений, по две строки на сообщение.

В первой строке сообщения записаны два целых числа $n_i$ и $k_i$ (2ドル \le n_i \le 10^9,ドル 1ドル \le k_i \le 300,000円,ドル $k_i \le \frac{n_i}{2}$). Во второй строке сообщения записаны $k_i$ различных целых чисел от 1ドル$ до $n_i$ в возрастающем порядке.

Гарантируется, что сумма всех значений $k_i$ в одном тесте не превосходит 300ドル,000円$.

Если $a=1,ドル то данные числа являются исходным сообщением. Если $a=2,ドル то данные числа являются результатом запуска вашей программы для шифрования какого-либо сообщения при первом запуске вашей программы.

출력

Программа должна вывести $m$ строк, $i$-я строка должна содержать $k_i$ различных целых чисел от 1ドル$ до $n_i$ в возрастающем порядке.

При первом запуске для каждого исходного сообщения $T_i$ программа должна вывести множество $R_i,ドル которое не должно пересекаться с $T_i$.

При втором запуске программа для каждого зашифрованного сообщения $R_i$ должна восстановить исходное сообщение $T_i$.

제한

서브태스크

Чтобы указать дополнительные ограничения на входные данные, обозначим последовательность чисел, которые задают множество $T_i,ドル как $t_1,ドル $t_2,ドル \dots, $t_{k_i}$. Они расположены в порядке возрастания.

Обозначим сумму $n_i$ в одном тесте как $N$.

Обозначим сумму $k_i$ в одном тесте как $K$.

번호배점제한
19

$N \le 5,000円,ドル $k_i=1$

211

$N \le 5,000円,ドル $k_i=2$

39

$N \leq 300,000円,ドル $k_i=\frac{n_i}{2}$

47

$n_i \le 7,ドル $N \leq 5,000円$

59

$t_{j+1} - t_j \geq 2,ドル $t_{k_i} \leq n_i - 1$

69

$t_{k_i} - t_1 \leq \frac{n_i}{2} - 1$

710

$N \leq 5,000円,ドル $t_{k_i} \leq n_i - k_i$

812

$N \leq 100$

93

$N \leq 5,000円$

107

$N \leq 300,000円$

117

$K \leq 5,000円$

127

Без дополнительных ограничений

예제 입력 1

1
2
2 1
1
5 2
1 4

예제 출력 1

2
2 3

예제 입력 2

2
2
5 2
2 3
2 1
2

예제 출력 2

1 4
1

노트

Обратите внимание, что в примере приведены конкретные варианты вывода в первом запуске и ввода во втором запуске. Если ваша программа выведет другое множество $R,ドル при втором запуске ввод также будет другой.

Также при втором запуске зашифрованные сообщения передаются программе участника не обязательно в том порядке, в котором они следовали при первом запуске.

출처

Olympiad > Russian Olympiad in Informatics > Russian Olympiad in Informatics 2023 2번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
  • 이 문제의 채점 우선 순위는 2이다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /