eolymp
bolt
Try our new interface for solving problems
Məsələlər

Уникальные ключи шифрования

Уникальные ключи шифрования

Безопасность многих шифров сильно зависит от того, что ключи уникальны и никогда не используются повторно. Это может быть жизненно важным, поскольку относительно сильный шифр может быть взломан, если один и тот же ключ используется для шифрования нескольких разных сообщений.

В этой задаче мы попытаемся обнаружить повторяющееся (дублированное) использование ключей. Имея последовательность ключей, используемых для шифрования сообщений, Ваша задача состоит в том, чтобы определить, какие ключи использовались повторно в течение определенного периода времени.

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

Содержит несколько описаний шифров. Каждое описание начинается с одной строки, содержащей два целых числа: количество зашифрованных сообщений m (1m106) и количество запросов q (0q106).

Каждая из следующих m строк содержит одно число ki (0ki230) - идентификатора ключа, используемого для шифрования i - го сообщения. Каждая из следующих q строк содержит один запрос. Каждый запрос задается двумя целыми числами bj и ej (1bjejm), задавая интервал сообщений, которые мы хотим проверить.

После каждого теста идет одна пустая строка. Входные данные заканчиваются строкой, содержащей два нуля.

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

Для каждого запроса выведите одну строку. Строка должна содержать "OK", если все ключи, используемые для шифрования сообщений между bj и ej (включительно), взаимно различаются (имеют разные идентификаторы). Если некоторые из ключей использовались неоднократно, выведите один идентификатор любого такого ключа.

Выведите одну пустую строку после каждого описания шифра.

Zaman məhdudiyyəti 3 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
10 5
3
2
3
4
9
7
3
8
4
1
1 3
2 6
4 10
3 7
2 6

5 2
1
2
3
1
2
2 4
1 5

0 0
Çıxış verilənləri #1
3
OK
4
3
OK

OK
1
Mənbə 2011 ACM Central Europe (CERC), Прага, Ноябрь 11 - 13, Задача C