F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

Funny String

Time Limit: 15000/15000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)
Total Submission(s): 135    Accepted Submission(s): 33


Problem Description
You are given a string $S$ with length $n$. And it is guaranteed that $S_i$ $\in$ $[1,m]$ for $i$ from $1$ to $n$.

Denote $suf(S,i)$ as the suffix of $S$ with length $n-i+1$. In other words,$suf(S,i)=S_iS_{i+1}...S_n$.

Each time you will be asked one of the following questions:

1.Given a character $c$ and an integer $i$. Then you will obtain a new string $T$ by inserting the character $c$ to the front of $S$ (namely $T=cS_1S_2...S_n$ ). What is the rank of $suf(T,i)$ among all the $suf(T,k)$ ($k\in[1,n+1]$) in lexicographical order.

2.Given a character $c$ and an integer $i$. Then you will obtain a new string $T$ by inserting the character $c$ to the back of $S$ (namely $T=S_1S_2...S_nc$ ). What is the rank of $suf(T,i)$ among all the $suf(T,k)$ ($k\in[1,n+1]$) in lexicographical order.

Notice, we just want to find the answer of each question and won't really add the character $c$ to the string $S$. In other words, each question is independent.
 

Input
The first line contains a single integer $T(1 \leq T \leq 30)$ , the number of test cases.

For each test case, the first line gives three integers $n$, $m$ and $q$ ($1 \leq n,m,q \leq 10^6$). $n$ is the length of string $S$, each character $S_i$ $\in$ $[1,m]$ and $q$ is the number of questions.

The next line gives the string $S$ that consists of $n$ positive integers which are in $[1,m]$.

Each of the following $q$ lines consists of three integers $t,c,i(1 \leq t \leq 2,1 \leq c \leq m,1 \leq i \leq n+1)$, representing the type of this question is $1$ if $t=1$ and $2$ if $t=2$.

Note that $c$ and $i$ is encrypted. Assuming $last$ is the previous query answer, the actual values of $c$ and $i$ are $c \oplus last$ and $i \oplus last$ ($\oplus$ denotes the exclusive or operation). For the first query , $last = 0$.

It is guaranteed that both $\sum$ $n$ and $\sum$ $q$ don't exceed $3 \times 10^6$.
 

Output
For each test case, you should print $q$ lines, each containing an integer, indicating the query answer.
 

Sample Input
1 8 50 5 10 20 30 10 20 30 10 20 2 40 5 2 45 1 2 42 1 1 2 15 1 13 4
 

Sample Output
5 2 7 2 6
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-04-25 08:25:54, Gzip enabled