问题2146--最频繁值(POJ3368)

2146: 最频繁值(POJ3368)

时间限制: 1 Sec  内存限制: 128 MB
提交: 4  解决: 4
[提交] [状态] [讨论版] [命题人:]

题目描述

给定n 个整数的非递减序列a 1 , a 2 ,…, an ,对每个索引i 和j 组成的查询(1≤i ≤j ≤n ),都确定整数ai , …, aj 中的最频繁值(出现次数最多的值)。

输入

包含多个测试用例。每个测试用例都以两个整数n 和q(1≤n ,q ≤100000)的行开始。下一行包含n 个整数a 1 , …, an(-100000≤ai ≤100000,i ∈{1, …, n })。对每个i ∈{1, …,n -1},都满足ai ≤ai +1 。以下q 行,每行都包含一个查询,由两个整数i 和j 组成(1≤i ≤j ≤n ),表示查询的边界索引。在最后一个测试用例后跟一个包含单个0的行。

输出

对每个查询,都单行输出一个整数,表示给定范围内最频繁值的出现次数。

样例输入 Copy

10 3
-1 -1 1 1 1 1 3 10 10 10
2 3
1 10
5 10
0

样例输出 Copy

1
4
3

来源/分类