CF1286E.Fedya the Potter Strikes Back
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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 ci and a nonnegative integer wi . First, ci must be appended to S , and wi must be appended to W . The answer to the query is the sum of suspiciousnesses for all subsegments of W [L, R] , (1≤L≤R≤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≤n≤600000) — the number of queries.
The i -th of the following n lines contains the query i : a lowercase letter of the Latin alphabet ci and an integer wi (0≤wi≤230−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 ci in the alphabet forward by ans , and set wi equal to wi⊕(ans & MASK) , where ⊕ is the bitwise exclusive "or", & is the bitwise "and", and MASK=230−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
说明/提示
For convenience, we will call "suspicious" those subsegments for which the corresponding lines are prefixes of S , that is, those whose suspiciousness may not be zero.
As a result of decryption in the first example, after all requests, the string S is equal to "abacaba", and all wi=1 , that is, the suspiciousness of all suspicious sub-segments is simply equal to 1 . Let's see how the answer is obtained after each request:
1. S = "a", the array W has a single subsegment — [1, 1] , and the corresponding substring is "a", that is, the entire string S , thus it is a prefix of S , and the suspiciousness of the subsegment is 1 .
2. S = "ab", suspicious subsegments: [1, 1] and [1, 2] , total 2 .
3. S = "aba", suspicious subsegments: [1, 1] , [1, 2] , [1, 3] and [3, 3] , total 4 .
4. S = "abac", suspicious subsegments: [1, 1] , [1, 2] , [1, 3] , [1, 4] and [3, 3] , total 5 .
5. S = "abaca", suspicious subsegments: [1, 1] , [1, 2] , [1, 3] , [1, 4] , [1, 5] , [3, 3] and [5, 5] , total 7 .
6. S = "abacab", suspicious subsegments: [1, 1] , [1, 2] , [1, 3] , [1, 4] , [1, 5] , [1, 6] , [3, 3] , [5, 5] and [5, 6] , total 9 .
7. S = "abacaba", suspicious subsegments: [1, 1] , [1, 2] , [1, 3] , [1, 4] , [1, 5] , [1, 6] , [1, 7] , [3, 3] , [5, 5] , [5, 6] , [5, 7] and [7, 7] , total 12 .
In the second example, after all requests S = "aaba", W=[2,0,2,0] .
1. S = "a", suspicious subsegments: [1, 1] (suspiciousness 2 ), totaling 2 .
2. S = "aa", suspicious subsegments: [1, 1] ( 2 ), [1, 2] ( 0 ), [2, 2] ( 0 ), totaling 2 .
3. S = "aab", suspicious subsegments: [1, 1] ( 2 ), [1, 2] ( 0 ), [1, 3] ( 0 ), [2, 2] ( 0 ), totaling 2 .
4. S = "aaba", suspicious subsegments: [1, 1] ( 2 ), [1, 2] ( 0 ), [1, 3] ( 0 ), [1, 4] ( 0 ), [2, 2] ( 0 ), [4, 4] ( 0 ), totaling 2 .
In the third example, from the condition after all requests S = "abcde", W=[7,2,10,1,7] .
1. S = "a", suspicious subsegments: [1, 1] ( 7 ), totaling 7 .
2. S = "ab", suspicious subsegments: [1, 1] ( 7 ), [1, 2] ( 2 ), totaling 9 .
3. S = "abc", suspicious subsegments: [1, 1] ( 7 ), [1, 2] ( 2 ), [1, 3] ( 2 ), totaling 11 .
4. S = "abcd", suspicious subsegments: [1, 1] ( 7 ), [1, 2] ( 2 ), [1, 3] ( 2 ), [1, 4] ( 1 ), totaling 12 .
5. S = "abcde", suspicious subsegments: [1, 1] ( 7 ), [1, 2] ( 2 ), [1, 3] ( 2 ), [1, 4] ( 1 ), [1, 5] ( 1 ), totaling 13 .