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

Задача . B. Восстанови погоду


Вам дан массив \(a\), содержащий прогноз погоды в Берляндии за последние \(n\) дней. То есть, \(a_i\) — это предполагаемая температура воздуха в день \(i\) (\(1 \le i \le n\)).

Также вам дан массив \(b\) —температура воздуха, которая была в каждый из дней на самом деле. Однако, все значения в массиве \(b\) перемешались.

Определите, в какой день была какая температура, если известно, что погода никогда не отличается от прогноза более чем на \(k\) градусов. Другими словами, если в день \(i\) настоящая температура воздуха равнялась \(c\), то всегда верно равенство \(|a_i - c| \le k\).

Например, пусть задан массив \(a\) = [\(1, 3, 5, 3, 9\)] длины \(n = 5\) и \(k = 2\) и массив \(b\) = [\(2, 5, 11, 2, 4\)]. Тогда, чтобы значение \(b_i\) соответствовало температуре воздуха в день \(i\), можно переставить элементы массива \(b\) так: [\(2, 2, 5, 4, 11\)]. Действительно:

  • В \(1\)-й день \(|a_1 - b_1| = |1 - 2| = 1\), выполняется \(1 \le 2 = k\)
  • Во \(2\)-й день \(|a_2 - b_2| = |3 - 2| = 1\), выполняется \(1 \le 2 = k\)
  • В \(3\)-й день \(|a_3 - b_3| = |5 - 5| = 0\), выполняется \(0 \le 2 = k\)
  • В \(4\)-й день \(|a_4 - b_4| = |3 - 4| = 1\), выполняется \(1 \le 2 = k\)
  • В \(5\)-й день \(|a_5 - b_5| = |9 - 11| = 2\), выполняется \(2 \le 2 = k\)
Входные данные

Первая строка входных данных содержит целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных в тесте.

Далее следуют описания наборов входных данных.

В первой строке каждого набора входных данных записано два целых числа \(n\) (\(1 \le n \le 10^5\)) и \(k\) (\(0 \le k \le10^9\)) — количество дней и максимальная разница между предполагаемой и реальной температурой воздуха в каждый из дней.

Во второй строке каждого набора входных данных записано ровно \(n\) целых чисел — элементы массива \(a\) (\(-10^9 \le a_i \le 10^9\)).

Во третьей строке каждого набора входных данных записано ровно \(n\) целых чисел — элементы массива \(b\) (\(-10^9 \le b_i \le 10^9\)).

Гарантируется, что сумма \(n\) по всем наборам не превышает \(10^5\), и что элементы массива \(b\) всегда можно переставить таким образом, чтобы равенство \(|a_i - b_i| \le k\) было верно для всех \(i\).

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

В отдельной строке для каждого набора входных данных выведите ровно \(n\) чисел — значения температуры воздуха в каждый из дней в правильном порядке.

Если существует несколько вариантов ответа — выведите любой из них.


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

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

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