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
       

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

Статистика успешных решений по компиляторам