题库练习 Fedya the Potter Strikes Back
← 上一题 下一题 →

A13256 | Fedya the Potter Strikes Back

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Fedya has a string $S$ , initially empty, and an array $W$ , also initially empty.

There are $n$ queries to process, one at a time. Query $i$ consists of a lowercase English letter $c_i$ and a nonnegative integer $w_i$ . First, $c_i$ must be appended to $S$ , and $w_i$ must be appended to $W$ . The answer to the query is the sum of suspiciousnesses for all subsegments of $W$ $[L, \ R]$ , $(1 \leq L \leq R \leq i)$ .

We define the suspiciousness of a subsegment as follows: if the substring of $S$ corresponding to this subsegment (that is, a string of consecutive characters from $L$ -th to $R$ -th, inclusive) matches the prefix of $S$ of the same length (that is, a substring corresponding to the subsegment $[1, \ R - L + 1]$ ), then its suspiciousness is equal to the minimum in the array $W$ on the $[L, \ R]$ subsegment. Otherwise, in case the substring does not match the corresponding prefix, the suspiciousness is $0$ .

Help Fedya answer all the queries before the orderlies come for him!

输入格式

The first line contains an integer $n$ $(1 \leq n \leq 600\,000)$ — the number of queries.

The $i$ -th of the following $n$ lines contains the query $i$ : a lowercase letter of the Latin alphabet $c_i$ and an integer $w_i$ $(0 \leq w_i \leq 2^{30} - 1)$ .

All queries are given in an encrypted form. Let $ans$ be the answer to the previous query (for the first query we set this value equal to $0$ ). Then, in order to get the real query, you need to do the following: perform a cyclic shift of $c_i$ in the alphabet forward by $ans$ , and set $w_i$ equal to $w_i \oplus (ans \ \& \ MASK)$ , where $\oplus$ is the bitwise exclusive "or", $\&$ is the bitwise "and", and $MASK = 2^{30} - 1$ .

输出格式

Print $n$ lines, $i$ -th line should contain a single integer — the answer to the $i$ -th query.

输入输出样例

输入 #1
7
a 1
a 0
y 3
y 5
v 4
u 6
r 8
输出 #1
1
2
4
5
7
9
12
输入 #2
4
a 2
y 2
z 0
y 2
输出 #2
2
2
2
2
输入 #3
5
a 7
u 5
t 3
s 10
s 11
输出 #3
7
9
11
12
13
C++ 编辑器
输入
输出