#P15715. 文法展开档案

    ID: 14927 传统题 5000ms 1024MiB 尝试: 2 已通过: 1 难度: 9 上传者: 标签>数据结构树状数组组合数学CF2600

文法展开档案

题目描述

语言学家 Elio 设计了一套由排列生成的奇怪文法。给定一个 11nn 的排列,他把每个整数 1,2,,n1,2,\ldots,n 都看作一个非终结符。

对于整数 kk,它的展开规则如下:在给定排列中找出所有不超过 kk 的整数,并按它们在排列中的相对顺序组成一个列表。

例如,当 n=4n=4,排列为

1,4,3,21,4,3,2

时,展开规则为

11,1\Rightarrow 1, 21 2,2\Rightarrow 1\ 2, 31 3 2,3\Rightarrow 1\ 3\ 2, 41 4 3 2.4\Rightarrow 1\ 4\ 3\ 2.

现在从只包含一个符号 nn 的列表开始。每一步中,Elio 会把当前列表中的每个整数都按照对应规则展开,得到一个新的列表。重复这个过程 ss 步。

最终列表可能很长。Elio 不想真的把它全部写出来,于是给你 qq 个询问。每个询问包含整数 kk 和前缀长度 aa,要求你回答:最终列表的前 aa 个元素中,整数 kk 出现了多少次。

输入格式

第一行包含三个整数 n,s,qn,s,q,分别表示排列大小、展开步数和询问数量。

接下来 nn 行,每行包含一个整数,按顺序给出排列。

接下来 qq 行,每行包含两个整数 k,ak,a,表示一个询问。

保证 aa 不超过最终列表的长度。

输出格式

对每个询问,按输入顺序输出一行一个整数,表示最终列表前 aa 个元素中 kk 的出现次数。

数据范围

  • 2n1052\le n\le 10^5
  • 1s51\le s\le 5
  • 1q21051\le q\le 2\cdot 10^5
  • 1kn1\le k\le n
  • 1a1091\le a\le 10^9
  • 输入的 nn 个数构成 11nn 的排列。

样例 1

输入

4 3 6
1
4
3
2
1 6
2 20
4 1
3 5
2 9
1 16

输出

3
6
0
1
2
8