Завдяки спільноті PPCG Санта встиг відновити всі свої подарунки, і після складальної лінії подарунки тепер готові перенести у транспортні доки!
Кожен транспортний док Санта має лише низку наявних розмірів, оскільки транспортні сани спеціалізовані для конкретного розміру (будь-яка легша, і це буде марно, будь-яка важка і сани не зможуть впоратися з вантажем). Таким чином, він вам потрібен, щоб допомогти йому взяти подарунки та розібрати їх у правильні транспортні доки.
Виклик
Враховуючи список та діапазони транспортних доків, стабільно організуйте подарунки у правильному порядку.
Візьмемо для прикладу це: подарунки є [5, 3, 8, 6, 2, 7]
і діапазон доків [[1, 5] and [6, 10]]
.
Присутні 5
, 3
і 2
йти в перший док - станції і подарунки 8
, 6
і 7
йти в другій док. Це може бути показано як [[5, 3, 2], [8, 6, 7]]
. Цей список буде ближче до сортування, ніж вхідний, але stably
означає, що в кожному документі порядок подарунків повинен бути таким же, як і порядок введення (інакше ви можете просто сортувати весь список).
Вашим кінцевим результатом для цього випадку буде [5, 3, 2, 8, 6, 7]
(як плоский список).
Технічні характеристики форматування
Вам буде надана введення в вигляді плоского списку цілих чисел і список діапазонів в будь-якому прийнятному форматі (наприклад, діапазон для наведеного вище випадку може бути заданий як [[1, 5], [6, 10]]
, [1, 5, 6, 10]
або [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
). Вихід повинен бути рівним списком цілих чисел у будь-якому розумному форматі.
Вхід може містити повторювані значення; у цьому випадку вам потрібно повернути всі їх екземпляри. Усі наявні розміри будуть точно в одному діапазоні розмірів, і ви можете припустити, що діапазони ніколи не будуть перетинатися. У діапазоні можуть бути прогалини, якщо всі наявні розміри покриті.
Правила
- Застосовуються стандартні лазівки
- Це є код-гольф, тому найкоротша відповідь у байтах виграє
- Відповідь не буде прийнято
- Можна припустити, що порожніх діапазонів
[7, 4]
не буде ( було б недійсним, оскільки діапазони збільшуються)
Випробування
[1, 2, 3, 4, 5, 6, 7] ; [[1, 3], [4, 7]] => [1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7] ; [[4, 7], [1, 3]] => [4, 5, 6, 7, 1, 2, 3]
[7, 3, 5, 4, 6, 1, 2] ; [[1, 3], [4, 5], [6, 7]] => [3, 1, 2, 5, 4, 7, 6]
[4, 7, 6, 3, 5, 2, 1] ; [[1, 4], [5, 7]] => [4, 3, 2, 1, 7, 6, 5]
[1, 1, 3, 3, 6, 4, 7] ; [[1, 4], [6, 7]] => [1, 1, 3, 3, 4, 6, 7]
Примітка: Натхнення для цієї серії викликів я черпав з Advent Of Code . Я не маю приналежності до цього сайту
Ви можете переглянути список усіх викликів у серії, переглянувши розділ "Пов'язані" першого виклику тут .