Codeforces Round 260 (Div. 1)
D
Serega and Fun
Codeforces
2700
原题
← CE →
翻译中…

Serega loves fun. However, everyone has fun in the unique manner. Serega has fun by solving query problems. One day Fedor came up with such a problem.

翻译中…

You are given an array $*a*$ consisting of $*n*$ positive integers and queries to it. The queries can be of two types:

翻译中…
  1. Make a unit cyclic shift to the right on the segment from $*l*$ to $*r*$ (both borders inclusive). That is rearrange elements of the array in the following manner:$*a*[*l*], *a*[*l* + 1], ..., *a*[*r* - 1], *a*[*r*] → *a*[*r*], *a*[*l*], *a*[*l* + 1], ..., *a*[*r* - 1].$
  2. Count how many numbers equal to $*k*$ are on the segment from $*l*$ to $*r*$ (both borders inclusive).
翻译中…

Fedor hurried to see Serega enjoy the problem and Serega solved it really quickly. Let's see, can you solve it?

翻译中…

Input

翻译中…

The first line contains integer $*n*$ ($1 ≤ *n* ≤ 10^{5}$) — the number of elements of the array. The second line contains $*n*$ integers $*a*[1], *a*[2], ..., *a*[*n*]$ ($1 ≤ *a*[*i*] ≤ *n*$).

翻译中…

The third line contains a single integer $*q*$ ($1 ≤ *q* ≤ 10^{5}$) — the number of queries. The next $*q*$ lines contain the queries.

翻译中…

As you need to respond to the queries online, the queries will be encoded. A query of the first type will be given in format: $1$ $*l*'_{*i*}$ $*r*'_{*i*}$. A query of the second type will be given in format: $2$ $*l*'_{*i*}$ $*r*'_{*i*}$ $*k*'_{*i*}$. All the number in input are integer. They satisfy the constraints: $1 ≤ *l*'_{*i*}, *r*'_{*i*}, *k*'_{*i*} ≤ *n*$.

翻译中…

To decode the queries from the data given in input, you need to perform the following transformations:

翻译中…

$*l*_{*i*} = ((*l*'_{*i*} + *lastans* - 1) *mod* *n*) + 1; *r*_{*i*} = ((*r*'_{*i*} + *lastans* - 1) *mod* *n*) + 1; *k*_{*i*} = ((*k*'_{*i*} + *lastans* - 1) *mod* *n*) + 1.$

翻译中…

Where $*lastans*$ is the last reply to the query of the 2-nd type (initially, $*lastans* = 0$). If after transformation $*l*_{*i*}$ is greater than $*r*_{*i*}$, you must swap these values.

翻译中…

Output

翻译中…

For each query of the 2-nd type print the answer on a single line.

翻译中…

样例

Input #1
7
6 6 2 7 4 2 5
7
1 3 6
2 2 4 2
2 2 4 7
2 2 2 5
1 2 6
1 1 4
2 1 7 3
Output #1
2
1
0
0
InputCopy OutputCopy
Input #2
8
8 4 2 2 7 7 8 8
8
1 8 8
2 8 1 7
1 8 1
1 7 3
2 8 8 3
1 1 4
1 2 7
1 4 5
Output #2
2
0
InputCopy OutputCopy
题目信息
题号
455D
时间限制
4 s
内存限制
256 MB
标签
数据结构

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。