05. Постраничный просмотр истории
Массив T[]
Что хранит. Последовательность элементов одного типа с фиксированной длиной. Порядок и повторяющиеся значения сохраняются.
Для чего используют. Подходит, когда количество элементов известно заранее: показания датчиков, результаты измерений, сохранённая история событий.
Основные операции
| Запись на C# | Назначение |
new int[n] | Создать массив из n целых чисел; начальные значения равны 0. |
a.Length | Число элементов. |
a[i] | Прочитать или заменить элемент с индексом i. |
foreach (int x in a) | Перебрать значения в порядке их расположения. |
Пример
Для примера нужны using System; и using System.Collections.Generic;. Код выполняется внутри Main.
int[] a = { 10, 20, 30 };
a[1] = 25; // Изменяем второй элемент.
Console.WriteLine(a.Length); // Длина не изменилась.
Console.WriteLine(string.Join(" ", a));
Вывод:
3
10 25 30
Важно. Индексы идут от 0 до Length − 1. Изменение значения не меняет длину массива. У пустого массива нет первого и последнего элемента.
Для этой задачи
- Номер страницы. Начальный индекс равен (page − 1) × size. Вычисляйте его в long.
- Последняя страница. Конец перебора ограничьте длиной массива.
Приложение показывает историю событий страницами. События хранятся от самого раннего к самому позднему. Для каждого запроса выведите страницу с номером page и размером size. Страницы нумеруются с единицы. Последняя страница может быть неполной. Запросы независимы и не меняют историю.
Входные данные
Первая строка содержит n и q. Вторая — n идентификаторов событий; при n = 0 она пустая. Следующие q строк содержат по два числа page и size.
Выходные данные
Для каждого запроса выведите идентификаторы событий нужной страницы через пробел. Если на странице нет событий, выведите EMPTY.
Не выводите приглашения к вводу и пояснения. Служебные слова в ответах пишите в указанном регистре.
Ограничения
0 ≤ n ≤ 100000; 1 ≤ q ≤ 100000; идентификаторы от 1 до 10⁹, повторы разрешены; 1 ≤ page, size ≤ 10⁹. Суммарно во всех ответах требуется вывести не более 200000 идентификаторов.
| № | Входные данные | Выходные данные |
|
1
|
5 4
101 102 103 104 105
1 2
2 2
3 2
4 2
|
101 102
103 104
105
EMPTY
|
|
2
|
0 2
1 10
1000000000 1000000000
|
EMPTY
EMPTY
|
Напишите программу
Auto