#3828. 蒲公英

蒲公英

题目描述

在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关。

为了简化起见,我们把所有的蒲公英看成一个长度为n n 的序列 a1,a2,,ana_1,a_2,…,a_n,其中ai a_i 为一个正整数,表示第 ii 棵蒲公英的种类编号。

而每次询问一个区间 [l,r][l,r],你需要回答区间里出现次数最多的是哪种蒲公英,如果有若干种蒲公英出现次数相同,则输出种类编号最小的那个。

输入格式

第一行两个整数nm n,m,表示有n n 株蒲公英,mm 次询问。

接下来一行 nn 个空格隔开的整数ai a_i,表示蒲公英的种类。

再接下来 mm 行每行两个整数l0,r0 l_0,r_0,我们令上次询问的结果为 xx(如果这是第一次询问,则 xx=0)。

l=((l0+x1)modn)+1,r=((r0+x1)modn)+1 l=((l_0+x−1)\bmod n)+1,r=((r_0+x−1)\bmod n)+1,如果 l>rl>r,则交换 lrl,r

最终的询问区间为[l,r] [l,r]

输出格式

输出 mm 行。

每行一个整数,表示每次询问的结果。

样例

6 3 
1 2 3 2 1 2 
1 5 
3 6 
1 5
1 
2 
1

数据范围

1n40000,1m50000,1ai1091≤n≤40000, 1≤m≤50000, 1≤a_i≤10^9

来源

  • BZOJ2724
  • 算法竞赛进阶指南