CF1286E.Fedya the Potter Strikes Back

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Fedya has a string SS , initially empty, and an array WW , also initially empty.

There are nn queries to process, one at a time. Query ii consists of a lowercase English letter cic_i and a nonnegative integer wiw_i . First, cic_i must be appended to SS , and wiw_i must be appended to WW . The answer to the query is the sum of suspiciousnesses for all subsegments of WW [L, R][L, \ R] , (1LRi)(1 \leq L \leq R \leq i) .

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

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

输入格式

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

The ii -th of the following nn lines contains the query ii : a lowercase letter of the Latin alphabet cic_i and an integer wiw_i (0wi2301)(0 \leq w_i \leq 2^{30} - 1) .

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

输出格式

Print nn lines, ii -th line should contain a single integer — the answer to the ii -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

说明/提示

For convenience, we will call "suspicious" those subsegments for which the corresponding lines are prefixes of SS , that is, those whose suspiciousness may not be zero.

As a result of decryption in the first example, after all requests, the string SS is equal to "abacaba", and all wi=1w_i = 1 , that is, the suspiciousness of all suspicious sub-segments is simply equal to 11 . Let's see how the answer is obtained after each request:

1. SS = "a", the array WW has a single subsegment — [1, 1][1, \ 1] , and the corresponding substring is "a", that is, the entire string SS , thus it is a prefix of SS , and the suspiciousness of the subsegment is 11 .

2. SS = "ab", suspicious subsegments: [1, 1][1, \ 1] and [1, 2][1, \ 2] , total 22 .

3. SS = "aba", suspicious subsegments: [1, 1][1, \ 1] , [1, 2][1, \ 2] , [1, 3][1, \ 3] and [3, 3][3, \ 3] , total 44 .

4. SS = "abac", suspicious subsegments: [1, 1][1, \ 1] , [1, 2][1, \ 2] , [1, 3][1, \ 3] , [1, 4][1, \ 4] and [3, 3][3, \ 3] , total 55 .

5. SS = "abaca", suspicious subsegments: [1, 1][1, \ 1] , [1, 2][1, \ 2] , [1, 3][1, \ 3] , [1, 4][1, \ 4] , [1, 5][1, \ 5] , [3, 3][3, \ 3] and [5, 5][5, \ 5] , total 77 .

6. SS = "abacab", suspicious subsegments: [1, 1][1, \ 1] , [1, 2][1, \ 2] , [1, 3][1, \ 3] , [1, 4][1, \ 4] , [1, 5][1, \ 5] , [1, 6][1, \ 6] , [3, 3][3, \ 3] , [5, 5][5, \ 5] and [5, 6][5, \ 6] , total 99 .

7. SS = "abacaba", suspicious subsegments: [1, 1][1, \ 1] , [1, 2][1, \ 2] , [1, 3][1, \ 3] , [1, 4][1, \ 4] , [1, 5][1, \ 5] , [1, 6][1, \ 6] , [1, 7][1, \ 7] , [3, 3][3, \ 3] , [5, 5][5, \ 5] , [5, 6][5, \ 6] , [5, 7][5, \ 7] and [7, 7][7, \ 7] , total 1212 .

In the second example, after all requests SS = "aaba", W=[2,0,2,0]W = [2, 0, 2, 0] .

1. SS = "a", suspicious subsegments: [1, 1][1, \ 1] (suspiciousness 22 ), totaling 22 .

2. SS = "aa", suspicious subsegments: [1, 1][1, \ 1] ( 22 ), [1, 2][1, \ 2] ( 00 ), [2, 2][2, \ 2] ( 00 ), totaling 22 .

3. SS = "aab", suspicious subsegments: [1, 1][1, \ 1] ( 22 ), [1, 2][1, \ 2] ( 00 ), [1, 3][1, \ 3] ( 00 ), [2, 2][2, \ 2] ( 00 ), totaling 22 .

4. SS = "aaba", suspicious subsegments: [1, 1][1, \ 1] ( 22 ), [1, 2][1, \ 2] ( 00 ), [1, 3][1, \ 3] ( 00 ), [1, 4][1, \ 4] ( 00 ), [2, 2][2, \ 2] ( 00 ), [4, 4][4, \ 4] ( 00 ), totaling 22 .

In the third example, from the condition after all requests SS = "abcde", W=[7,2,10,1,7]W = [7, 2, 10, 1, 7] .

1. SS = "a", suspicious subsegments: [1, 1][1, \ 1] ( 77 ), totaling 77 .

2. SS = "ab", suspicious subsegments: [1, 1][1, \ 1] ( 77 ), [1, 2][1, \ 2] ( 22 ), totaling 99 .

3. SS = "abc", suspicious subsegments: [1, 1][1, \ 1] ( 77 ), [1, 2][1, \ 2] ( 22 ), [1, 3][1, \ 3] ( 22 ), totaling 1111 .

4. SS = "abcd", suspicious subsegments: [1, 1][1, \ 1] ( 77 ), [1, 2][1, \ 2] ( 22 ), [1, 3][1, \ 3] ( 22 ), [1, 4][1, \ 4] ( 11 ), totaling 1212 .

5. SS = "abcde", suspicious subsegments: [1, 1][1, \ 1] ( 77 ), [1, 2][1, \ 2] ( 22 ), [1, 3][1, \ 3] ( 22 ), [1, 4][1, \ 4] ( 11 ), [1, 5][1, \ 5] ( 11 ), totaling 1313 .

首页