#P3794. 武器选择

武器选择

题目描述

白浅妹妹在玩打怪游戏,游戏共有 nn 个关卡,每通过一个关卡就会遇到一把武器,它的代号为 aia_i,表示当你aia_i遇到代号为 aia_i 的武器时,才能够获得这把武器(代号相同的武器可以认为是相同的武器)。

现在有 mm 次询问,每次指定一个关卡区间 [L,R][L, R],在通过这些关卡之后(白浅妹妹是一个高手,所以这些关卡都能通过),白浅妹妹需要从获得的武器中选出 kik_i 个(保证 ki4k_i \le 4)来与怪物对决,你需要输出有多少种组合方案。

注:同类武器只能同时拥有一把,组合方案与选出的武器种类有关,与顺序无关。

输入格式

第一行输入一个整数 nn,表示关卡的数量。

第二行输入 nn 个整数 aia_i,表示第 ii 个关卡遇到的武器的代号。

第三行输入一个整数 mm,表示挑战次数。

接下来的 mm 行,每行三个正整数 Li,Ri,kiL_i, R_i, k_i,表示需要通过的关卡区间以及需要选出的武器数量。

输出格式

输出 mm 行,每行一个整数,表示该次挑战武器组合方案数量。

样例

7
1 3 7 2 3 7 2
4
1 1 1
2 5 4
4 7 1
1 7 1
1
0
1
2

样例解释

  • 对于第一个询问 [1,1][1,1],获得的武器为 {1}\{1\},选出一把武器的方案为 (1)(1),共 11 种。
  • 对于第二个询问 [2,5][2,5],没有获得的武器,方案数为 00
  • 对于第三个询问 [4,7][4,7],获得的武器为 {2}\{2\},选出一把武器的方案为 (2)(2),共 11 种。
  • 对于第四个询问 [1,7][1,7],获得的武器为 {1,2}\{1,2\},选出一把武器的方案为 (1),(2)(1), (2),共 22 种。

数据范围

  • 1n1051 \le n \le 10^5
  • 1ai1091 \le a_i \le 10^9
  • 1m1051 \le m \le 10^5
  • 1LiRin1 \le L_i \le R_i \le n
  • 1ki41 \le k_i \le 4