#P1605. 武器选择

    ID: 5257 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>组合数学排列组合基础算法前缀和

武器选择

题目描述

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

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

输入格式

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

第二行输入 nn 个整数 aia_i1ai1091≤a_i≤10^9)表示第 ii 个关卡遇到的武器的代号(保证任意两个武器的代号互不相同)。

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

接下来的 mm 行,每行三个正整数 Li,Ri,ki (1LiRi𝑛, 1ki4)L_i, R_i,k_i\ (1 ≤ L_i≤ R_i ≤ 𝑛,\ 1≤k_i ≤ 4),表示需要通过的关卡区间。

输出格式

输出 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

对于第一个询问,获得的武器为 11,选出一把武器的方案为 (1)(1)

对于第二个询问,没有获得的武器;

对于第三个询问,获得的武器为 22,选出一把武器的方案为 (2)(2)

对于第四个询问,获得的武器为 1,21,2,选出一把武器的方案为 (1),(2)(1),(2) 两种。

数据范围/提示

测试点编号 n,mn,m\le 特殊性质
121\sim 2 5050
343\sim 4 10310^3
55 10510^5 RiLi3R_i - L_i\le 3
676\sim 7 ai10a_i\le 10
8108\sim 10