Олимпиадный тренинг

Задача . E. Минимальный массив


Вам даны два массива \(a\) и \(b\), в каждом из которых по \(n\) элементов. Все элементы не меньше \(0\) и не больше \(n-1\).

Вы можете переставить элементы массива \(b\) (можно и оставить порядок тем же самым). После этого будет создан новый массив \(c\) из элементов \(n\), \(i\)-й элемент которого равен \(c_i = (a_i + b_i) \% n\), где \(x \% y\) — остаток от деления \(x\) на \(y\).

Ваше задание — переставить элементы массива \(b\) таким образом, чтобы получить лексикографически минимальный массив \(c\).

Массив \(x\) длины \(n\) лексикографически меньше, чем массив \(y\) длины \(n\), если существует такой индекс \(i\) (\(1 \le i \le n\)), что \(x_i < y_i\), и для всех индексов \(j\) (\(1 \le j < i\)) \(x_j = y_j\).

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

В первой строке записано одно целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество элементов в \(a\), \(b\) и \(c\).

Во второй строке записаны \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(0 \le a_i < n\)), где \(a_i\)\(i\)-й элемент массива \(a\).

В третьей строке записаны \(n\) целых чисел \(b_1, b_2, \dots, b_n\) (\(0 \le b_i < n\)), где \(b_i\)\(i\)-й элемент массива \(b\).

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

Выведите лексикографически минимальный массив \(c\). Напоминаем, ваша задача состоит в том, чтобы переставить элементы массива \(b\) и получить лексикографически минимальный массив \(c\), где \(i\)-й элемент \(c\) — это \(c_i = (a_i + b_i) \% n\).


Примеры
Входные данныеВыходные данные
1 4
0 1 2 1
3 2 1 1
1 0 0 2
2 7
2 5 1 5 3 4 3
2 4 3 5 6 5 1
0 0 0 1 0 2 4

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя