麦哲伦有 n 个无人机,第 i 个无人机有一个正整数参数 ai,其中 ai∈[1, m]。
麦哲伦每次会使用 [l, r] 范围内的无人机进行高效制冷。她需要手动配置 bl, bl+1, ⋯, br,使得 bi=ai,才可以启动高效制冷模块。
但由于无人机实在是太多了,配置的过程很容易出错,因此她改进了配置系统,现在只需要序列 al, al+1, ⋯, ar 和 bl, bl+1, ⋯, br 的最长公共子序列的长度恰好为 r−l,就可以启动高效制冷模块。
为了保证无人机的正常运行,bi 也必须是 [1, m] 范围中的正整数。
麦哲伦想知道,对于每一次的高效制冷,她有多少种配置序列 bl, bl+1, ⋯, br 的方式。两种配置方式 b, c 不同,当且仅当存在 i∈[l, r],使得 bi≠ci。
由于答案太大了,她只想知道答案对 998244353 取模后的结果。
输入格式
从文件 freeze.in
中读入数据。
第一行三个整数 n, m, q,分别表示无人机的个数、参数的范围和高效制冷的次数。
第二行 n 个正整数,表示每个无人机的参数 a1, a2, ⋯, an。
接下来 q 行,每行两个正整数 l, r,表示一次高效制冷所选的无人机范围。
输出格式
输出到文件 freeze.out
中。
对于每次高效制冷,输出一行一个整数,表示答案。
3 3 3
1 1 1
1 1
1 2
1 3
2
4
6
样例 1 解释
对于第一次高效制冷,{2}, {3} 两个序列满足要求。
对于第二次高效制冷,{1,2}, {1,3}, {2,1}, {3,1} 四个序列满足要求。
对于第三次高效制冷,{1,1,2}, {1,1,3}, {1,2,1}, {1,3,1}, {2,1,1}, {3,1,1} 六个序列满足要求。
10 9 1
1 2 1 3 1 4 5 6 7 8
1 10
789
数据范围
对于 100% 的数据,满足 1≤l≤r≤n≤5×105,2≤m≤109,1≤q≤2×106。
子任务编号 |
分值 |
n≤ |
m≤ |
q≤ |
1 |
5 |
10 |
10 |
10 |
2 |
19 |
1000 |
109 |
1000 |
3 |
22 |
2×105 |
109 |
1000 |
4 |
34 |
2×105 |
109 |
3×105 |
5 |
20 |
5×105 |
109 |
2×106 |