P14420 [JOISC 2014] 历史的研究 / Historical Research

题目描述

作为研究 IOI 国历史的先驱者,乔伊教授获得了一本据称由古代 IOI 国居民所写的日记。乔伊教授计划通过分析这本日记来研究古代 IOI 国的生活,因此决定调查日记中记录的事件。 日记中记录了连续 $N$ 天内每天发生的事件,每个事件被分类为若干种类型之一。第 $i$ 天($1 \le i \le N$)发生的事件类型由整数 $X_i$ 表示,$X_i$ 的值越大,表示该事件的规模越大。 乔伊教授决定按以下方法分析日记: 1. 从日记的 $N$ 天中选择一个连续的若干天作为分析区间。 2. 对于事件类型 $t$,其“重要度”定义为 $t \times$(该区间内类型 $t$ 的事件数量)。 3. 对所有事件类型分别计算重要度,并求出其中的最大值。 你被乔伊教授委派编写一个用于分析的程序。该程序需在给定分析区间的情况下,能够求出重要度的最大值。 **问题** 当给定日记中 $N$ 天内每天的事件类型,以及表示日记中区间的 $Q$ 个查询时,请编写程序,对每个查询求出对应区间内事件重要度的最大值。

输入格式

从标准输入读取以下数据: - 第 $1$ 行包含两个整数 $N$ 和 $Q$,以空格分隔。这表示日记共有 $N$ 天,且给出 $Q$ 个查询。 - 下一行包含 $N$ 个整数 $X_1, \dots, X_N$,以空格分隔,其中 $X_i$($1 \le i \le N$)表示第 $i$ 天发生的事件类型。 - 接下来的 $Q$ 行中,第 $j$ 行($1 \le j \le Q$)包含两个整数 $A_j$ 和 $B_j$($1 \le A_j \le B_j \le N$),以空格分隔,表示第 $j$ 个查询对应的区间为从第 $A_j$ 天到第 $B_j$ 天。

输出格式

向标准输出输出 $Q$ 行。第 $j$ 行($1 \le j \le Q$)输出一个整数,表示第 $j$ 个查询对应区间内事件重要度的最大值。

说明/提示

### 样例 1 解释 - 此日记共持续 5 天,日记中记录的事件类型仅为 7、8、9 之一。 - 从第 1 天到第 2 天,事件类型 7 的重要度为 $7 \times 0 = 0$,事件类型 8 的重要度为 $8 \times 1 = 8$,事件类型 9 的重要度为 $9 \times 1 = 9$,因此三者中的最大值为 9。 - 从第 3 天到第 4 天,事件类型 7 的重要度为 $7 \times 1 = 7$,事件类型 8 的重要度为 $8 \times 1 = 8$,事件类型 9 的重要度为 $9 \times 0 = 0$,因此三者中的最大值为 8。 - 在第 4 天,事件类型 7 的重要度为 $7 \times 0 = 0$,事件类型 8 的重要度为 $8 \times 1 = 8$,事件类型 9 的重要度为 $9 \times 0 = 0$,因此三者中的最大值为 8。 - 从第 1 天到第 4 天,事件类型 7 的重要度为 $7 \times 1 = 7$,事件类型 8 的重要度为 $8 \times 2 = 16$,事件类型 9 的重要度为 $9 \times 1 = 9$,因此三者中的最大值为 16。 - 从第 2 天到第 4 天,事件类型 7 的重要度为 $7 \times 1 = 7$,事件类型 8 的重要度为 $8 \times 2 = 16$,事件类型 9 的重要度为 $9 \times 0 = 0$,因此三者中的最大值为 16。 ### 限制 所有输入数据均满足以下条件: - $1 \le N \le 100000$。 - $1 \le Q \le 100000$。 - $1 \le X_i \le 1000000000$($1 \le i \le N$)。 ### 子任务 **子任务 1 [5 分]** 满足以下条件: - $N \le 100$。 - $Q \le 100$。 **子任务 2 [10 分]** 满足以下条件: - $N \le 5000$。 - $Q \le 5000$。 **子任务 3 [25 分]** 不存在满足 $A_i \le A_j \le B_j \le B_i$ 的 $i, j$(其中 $1 \le i \le Q$,$1 \le j \le Q$,且 $i \ne j$)。 **子任务 4 [60 分]** 无额外限制。 翻译由 Qwen3-235B 完成