QOJ.ac

QOJ

Time Limit: 10.0 s Memory Limit: 256 MB Total points: 100

#15982. 唯一加密密钥

Statistics

许多密码的安全性在很大程度上取决于密钥的唯一性且绝不重复使用。这可能是至关重要的,因为如果使用相同的密钥来加密多个不同的消息,一个相对强健的密码也可能会被破解。

在本题中,我们将尝试检测密钥的重复(多次)使用。给定用于加密消息的密钥序列,您的任务是确定在某些指定的区间内,哪些密钥被重复使用了。

输入格式

输入包含多组密码描述。每组描述以包含两个由空格隔开的整数 $M$ 和 $Q$ 的一行开始。$M$ ($1 \le M \le 1\,000\,000$) 是加密消息的数量,$Q$ 是查询的数量 ($0 \le Q \le 1\,000\,000$)。

接下来的 $M$ 行中,每行包含一个数字 $K_i$ ($0 \le K_i \le 2^{30}$),表示用于加密第 $i$ 条消息的密钥标识符。接下来的 $Q$ 行每行包含一个查询。每个查询由两个整数 $B_j$ 和 $E_j$ 指定,$1 \le B_j \le E_j \le M$,表示我们要检查的消息区间。

每组描述之后有一个空行。输入以一行包含两个零(代替数量 $M$ 和 $Q$)结束。

输出格式

对于每个查询,输出一行。如果用于加密第 $B_j$ 条到第 $E_j$ 条(含)消息的所有密钥互不相同(即它们具有不同的标识符),则该行应包含字符串 OK。如果其中某些密钥被重复使用,则输出任意一个此类密钥的标识符。

在每组密码描述的输出之后打印一个空行。

样例

输入样例 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

输出样例 1

3
OK
4
3
OK

OK
1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.