Слияние отрезков
Даны два отсортированных массива A, B. Нужно обработать запросы следующего вида:
1 l r - Удалить подотрезок A[l, r], добавить его в конец B, и затем отсортировать B.
2 l r - Удалить подотрезок B[l, r], добавить его в конец A, и затем отсортировать A.
Необходимо вывести получившиеся массивы A, B.
Формат входных данных
Первая строка ввода содержит одно целое число N (0 ≤ N ≤ 5*105) - размер массива A.
Вторая строка содержит N целых чисел ai (1 ≤ a1 ≤ a2 ≤ ... ≤ an ≤ 109) - содержимое массива A.
Третья строка ввода содержит одно целое число M (0 ≤ M ≤ 5*105) - размер массива B.
Четвёртая строка содержит M целых чисел bi (1 ≤ b1 ≤ b2 ≤ ... ≤ bm ≤ 109) - содержимое массива B.
Пятая строка ввода содержит одно целое число Q (1 ≤ Q ≤ 9*105) - число запросов.
Следующие Q строк содержат по три целых числа t, l, r (t равно 1 или 2, 1 ≤ l ≤ r) - описание очередного запроса.
Гарантируется, что все запросы корректны, то есть при t = 1 всегда существует A[l, r] и при t = 2 всегда существует B[l, r].
Формат результата
В первой строке вывода должно быть одно целое число N' - итоговый размер массива A.
Во второй строке вывода должны быть N' целых чисел - содержимое итогового массива A.
В третьей строке вывода должно быть одно целое число M' - итоговый размер массива B.
В четвёртой строке вывода должны быть M' целых чисел- содержимое итогового массива B.
Примеры
Входные данные
4
1 3 5 7
5
2 4 6 7 8
5
1 1 1
2 2 4
2 1 3
1 1 7
2 2 5
Результат работы
6
2 3 4 5 7 8
3
1 6 7
Входные данные
1
1
0
1
1 1 1
Результат работы
0
1
1
Примечания
Рассмотрим первый пример из условия:
После первого запроса A = [3, 5, 7], B = [1, 2, 4, 6, 7, 8];
После второго запроса A = [2, 3, 4, 5, 6, 7], B = [1, 7, 8];
После третьего запроса A = [1, 2, 3, 4, 5, 6, 7, 7, 8], B = [];
После четвёртого запроса A = [7, 8], B = [1, 2, 3, 4, 5, 6, 7];
После пятого запроса A = [2, 3, 4, 5, 7, 8], B = [1, 6, 7].
картинка
Объяснение:
1.
Минимальное двоичное число из 5 цифр: 10000₂
10000₂ = 1 * 2⁴ + 0 * 2³ + 0 * 2² + 0 * 2¹ + 0 * 2⁰ = 16 + 0 + 0 + 0 + 0 = 16₁₀
Максимальное двоичное число из 5 цифр: 11111₂
11111₂ = 1 * 2⁴ + 1 * 2³ + 1 * 2² + 1 * 2¹ + 1 * 2⁰ = 16 + 8 + 4 + 2 + 1 = 31₁₀
2.
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
1₁₀ = 1₂
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
2₁₀ = 10₂
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
3₁₀ = 11₂
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
4₁₀ = 100₂
5 / 2 = 1 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
5₁₀ = 101₂
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
6₁₀ = 110₂
7 / 2 = 3 + остаток 1
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
7₁₀ = 111₂
8 / 2 = 4 + остаток 0
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
8₁₀ = 1000₂
9 / 2 = 4 + остаток 1
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
9₁₀ = 1001₂
10 / 2 = 5 + остаток 0
5 / 2 = 1 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
10₁₀ = 1010₂
11 / 2 = 5 + остаток 1
5 / 2 = 1 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
11₁₀ = 1011₂
12 / 2 = 6 + остаток 0
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
12₁₀ = 1100₂
13 / 2 = 6 + остаток 1
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
13₁₀ = 1101₂
14 / 2 = 7 + остаток 0
7 / 2 = 3 + остаток 1
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
14₁₀ = 1110₂
16 / 2 = 8 + остаток 0
8 / 2 = 4 + остаток 0
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
16₁₀ = 10000₂
3. Где есть цифра 1 - пишем 1, где цифр нет - пишем 0.
Браузер – это программа для просмотра веб-страниц. Если вы читаете эту веб-страницу, то объяснять, что это за программа и зачем она нужна, думаю, особого смысла нет.
На сегодняшний день в Интернет стало огромное количество браузеров от самых разных производителей. Для того, чтобы работать с HTML, может подойти любой из них. На начальном этапе этого достаточно.
В будущем, когда ваш профессионализм будет расти, вам может понадобиться установить сразу несколько браузеров на ваш компьютер. Это делается для того, чтобы была возможность тестирования отображения страниц в браузерах от разных производителей.
К сожалению, в деле веб-разработки не правильная работа страниц в разных браузерах далеко не редкость.
На всякий случай дам ссылки на наиболее популярные браузеры, которые вы можете использовать в своей работе.
2) Программа для создания и редактирования кода.
Следующий инструмент, который нам понадобится – это программа с которой можно создавать и редактировать HTML-код.
Здесь вариантов, на которых можно остановиться тоже очень много.
Если вы помните из заметки, HTML-документ – это обычный текстовый файл, поэтому работать с ним можно в любом текстовом редакторе. Это можно делать даже в стандартном приложении «Блокнот», который входит в стандартный пакет программ от Windows. Позже посмотрим, как это можно сделать.
Есть и другие продвинутые текстовые редакторы, которые более адаптированы к работе с кодом.
Например,
Notepad++
Объяснение: