Problem B
Permutation CFG
Consider a permutation of the integers $1$ to $n$. Now, consider each number $1$ through $n$ to be a non-terminal in a Context-Free Grammar (CFG). Each number $k$ expands a list of the integers from $1$ to $k$ in the order of the permutation. For example, if $n=4$ and the permutation is $1$ $4$ $3$ $2$:
-
$1 \implies 1$
-
$2 \implies 1$ $2$
-
$3 \implies 1$ $3$ $2$
-
$4 \implies 1$ $4$ $3$ $2$
Now, consider a process of starting with $n$, and at each step, applying these rules to create a new list of integers. In the above example, at the first step:
At the second step:
At the third step:
Given a permutation, a number of steps, and a list of queries asking for the number of occurrences of a particular integer in a prefix of the list created by the process, answer all of the queries.
Input
The first line of input contains three integers, $n$ ($2 \le n \le 10^5$), $s$ ($1 \le s \le 5 $) and $q$ ($1 \le q \le 2 \cdot 10^5$), where $n$ is the size of the permutation, $s$ is the number of steps to apply the process, and $q$ is the number of queries.
Each of the next $n$ lines contains a single integer $p$ ($1 \le p \le n$). This is the permutation, in order. All of the values of $p$ will be distinct.
Each of the next $q$ lines contains two integers $k$ ($1 \le k \le n$) and $a$ ($1 \le a \le 10^{9}$, $a$ will not exceed the length of the final list). This is a query for the number of occurrences of the integer $k$ in the first $a$ elements of the list created by the process.
Output
Output $q$ lines, each with a single integer, which are the answers to the queries in the order that they appear in the input.
Sample Input 1 | Sample Output 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 |