3.1 Динамическая память

3.1.3 Объединение массивов

Условие

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

Динамически выделите память для обоих исходных массивов. Реализуйте функцию int *concat_arrays(const int first[], int first_count, const int second[], int second_count), которая выделяет отдельный массив из first_count + second_count элементов, копирует в него данные и возвращает указатель на результат. При ошибке выделения функция возвращает нулевой указатель. Функция не должна изменять или освобождать исходные массивы и не должна выполнять ввод или вывод.

В main прочитайте данные, вызовите функцию, выведите результат и освободите все три массива. Ответственность за освобождение возвращённого массива несёт вызывающий код. При ошибке выделения соблюдайте общее правило блока.

Ограничения

Время: 2 секунды. Память: 64 МиБ. Вывод: до 2 МиБ. Стандарты: C11 / C++17.

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

В первой строке вводится целое число N — размер первого массива. Во второй строке вводятся N целых чисел через пробел. В третьей строке вводится целое число M — размер второго массива. В четвёртой строке вводятся M целых чисел через пробел. Ограничения: 1 ≤ N, M ≤ 100000, каждый элемент находится в диапазоне от −10⁶ до 10⁶ включительно.

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

Выведите N + M целых чисел в одной строке через пробел — элементы объединённого массива.

Примеры

Вход 1
3
1 4 2
2
9 -1
Ожидаемый выход
1 4 2 9 -1
Вход 2
1
0
1
0
Ожидаемый выход
0 0
Вход 3
2
-3 -3
3
5 0 5
Ожидаемый выход
-3 -3 5 0 5

Пробный запуск

Код берётся из редактора. Запуск не создаёт посылку и не влияет на баллы.

Выберите пример или введите свои данные и нажмите «Запустить».

Текущая попытка

Отправьте решение. Этапы и результат появятся здесь автоматически.

Все попытки

Войдите, чтобы видеть свои попытки.

Редактор

Один файл до 64 КиБ · Tab / Shift+Tab — отступ · Esc — выход из редактора · черновик сохраняется для этого аккаунта, задачи и языка.