COCI '15 Contest 4 #2 Han

View as PDF

Submit solution


Points: 10 (partial)
Time limit: 0.6s
Memory limit: 64M

Problem type

Han didn't want to study solo so he invited his friend Dominik to come over. After an eventful evening that will be remembered for a record number of solved tasks from the field of electronics, Dominik went home. To his surprise, the police stopped him thinking he was drunk. It is known that in these situations sobriety is proven by solving a series of carefully crafted tasks that test a man's cognitive abilities. If we can trust Dominik, the conversation went something like this:

Policeman: Something easy to begin with… What is the complexity of bubble sort?

Dominik: That is really easy, \mathcal{O}(n^2).

Policeman: Say the English alphabet in reverse.

Dominik: Trivial, zyxwvutsrqponmlkjihgfedcba.

Policeman: You learned that by heart. Now imagine that all the letters of the English alphabet from a to z are respectively written clockwise in a circle. Begin with the letter a and say the letters clockwise. After each spoken letter, I can tell you to continue saying the alphabet in reverse order or I can ask you how many times so far you've said a certain letter. Are you ready? 3, 2, 1, go!

Dominik: Um… a, b, c…

Write a programme that solves Dominik's problem.

Input

The first line of input contains the integer Q (1 \le Q \le 100\,000), the number of policeman's orders. Each of the following Q lines contains one of the policeman's orders in the form of SMJER n (Croatian for direction) or UPIT n x (Croatian for query). The order in the form SMJER n means that, after the n^{th} spoken letter, Dominik must start saying the alphabet in reverse, whereas the order in the form UPIT n x means that Dominik must say how many times so far he's said the letter x in the first n spoken letters.

The policeman's order will be given chronologically in the input, or, the numbers n (1 \le n \le 10^9) from the orders will be strictly ascending. The character x from the order in the form of UPIT n x is a lowercase letter of the English alphabet.

Output

For each order in the form of UPIT n x, output how many times Dominik has said the letter x in the first n spoken letters. The answer to each query needs to be written in a separate line, and the queries need to be answered in the order given in the input.

Scoring

In test cases worth 40% of total points, it will additionally hold: N \le 1000. In test cases worth 60% of total points, it will additionally hold: N \le 10^5.

Sample Input 1

5
UPIT 1 b
UPIT 3 b
SMJER 4
UPIT 7 a
UPIT 10 z

Sample Output 1

0
1
2
1

Explanation for Sample Output 1

Dominik says the following letters: a, b, c, d, c, b, a, z, y, x.

Sample Input 2

5
SMJER 1
SMJER 2
SMJER 3
UPIT 5 a
UPIT 7 w

Sample Output 2

2
1

Explanation for Sample Output 2

Dominik says the following letters: a, z, a, z, y, x, w.

Sample Input 3

4
UPIT 100 a
UPIT 200 c
UPIT 300 a
UPIT 400 b

Sample Output 3

4
8
12
16

Comments


  • 2
    Lost  commented on Nov. 27, 2021, 7:33 p.m.

    n can be equal to 0.