Codeforces Round 449 (Div. 1)
C
Willem, Chtholly and Seniorious
Codeforces
2600
原题
← BD →
翻译中…

— Willem...— What's the matter?— It seems that there's something wrong with Seniorious...— I'll have a look...

翻译中…

image

翻译中…

Seniorious is made by linking special talismans in particular order.

翻译中…

After over 500 years, the carillon is now in bad condition, so Willem decides to examine it thoroughly.

翻译中…

Seniorious has $*n*$ pieces of talisman. Willem puts them in a line, the $*i*$-th of which is an integer $*a*_{*i*}$.

翻译中…

In order to maintain it, Willem needs to perform $*m*$ operations.

翻译中…

There are four types of operations:

翻译中…
  • $1 *l* *r* *x*$: For each $*i*$ such that $*l* ≤ *i* ≤ *r*$, assign $*a*_{*i*} + *x*$ to $*a*_{*i*}$.
  • $2 *l* *r* *x*$: For each $*i*$ such that $*l* ≤ *i* ≤ *r*$, assign $*x*$ to $*a*_{*i*}$.
  • $3 *l* *r* *x*$: Print the $*x*$-th smallest number in the index range $[*l*, *r*]$, i.e. the element at the $*x*$-th position if all the elements $*a*_{*i*}$ such that $*l* ≤ *i* ≤ *r*$ are taken and sorted into an array of non-decreasing integers. It's guaranteed that $1 ≤ *x* ≤ *r* - *l* + 1$.
  • $4 *l* *r* *x* *y*$: Print the sum of the $*x*$-th power of $*a*_{*i*}$ such that $*l* ≤ *i* ≤ *r*$, modulo $*y*$, i.e. image.
翻译中…

Input

翻译中…

The only line contains four integers $*n*, *m*, *seed*, *v*_{*max*}$ ($1 ≤ *n*, *m* ≤ 10^{5}, 0 ≤ *seed* < 10^{9} + 7, 1 ≤ *vmax* ≤ 10^{9}$).

翻译中…

The initial values and operations are generated using following pseudo code:

翻译中…

def rnd():

    ret = seed
    seed = (seed * 7 + 13) mod 1000000007
    return ret

for i = 1 to n:

    a[i] = (rnd() mod vmax) + 1

for i = 1 to m:

    op = (rnd() mod 4) + 1
    l = (rnd() mod n) + 1
    r = (rnd() mod n) + 1

    if (l > r):
         swap(l, r)

    if (op == 3):
        x = (rnd() mod (r - l + 1)) + 1
    else:
        x = (rnd() mod vmax) + 1

    if (op == 4):
        y = (rnd() mod vmax) + 1

翻译中…

Here $*op*$ is the type of the operation mentioned in the legend.

翻译中…

Output

翻译中…

For each operation of types $3$ or $4$, output a line containing the answer.

翻译中…

Note

翻译中…

In the first example, the initial array is ${8, 9, 7, 2, 3, 1, 5, 6, 4, 8}$.

翻译中…

The operations are:

翻译中…
  • $2 6 7 9$
  • $1 3 10 8$
  • $4 4 6 2 4$
  • $1 4 5 8$
  • $2 1 7 1$
  • $4 7 9 4 4$
  • $1 2 7 9$
  • $4 5 8 1 1$
  • $2 5 7 5$
  • $4 3 10 8 5$
翻译中…

样例

Input #1
10 10 7 9
Output #1
2
1
0
3
InputCopy OutputCopy
Input #2
10 10 9 9
Output #2
1
1
3
3
InputCopy OutputCopy
题目信息
题号
896C
时间限制
2 s
内存限制
256 MB
标签
数据结构
概率论

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