Codeforces Round 371 (Div. 1)
A
Sonya and Queries
Codeforces
1400
原题
←B →
翻译中…

Today Sonya learned about long integers and invited all her friends to share the fun. Sonya has an initially empty multiset with integers. Friends give her $*t*$ queries, each of one of the following type:

翻译中…
  1. $+$ $*a*_{*i*}$ — add non-negative integer $*a*_{*i*}$ to the multiset. Note, that she has a multiset, thus there may be many occurrences of the same integer.
  2. $-$ $*a*_{*i*}$ — delete a single occurrence of non-negative integer $*a*_{*i*}$ from the multiset. It's guaranteed, that there is at least one $*a*_{*i*}$ in the multiset.
  3. $?$ $*s*$ — count the number of integers in the multiset (with repetitions) that match some pattern $*s*$ consisting of $0$ and $1$. In the pattern, $0$ stands for the even digits, while $1$ stands for the odd. Integer $*x*$ matches the pattern $*s*$, if the parity of the $*i*$-th from the right digit in decimal notation matches the $*i*$-th from the right digit of the pattern. If the pattern is shorter than this integer, it's supplemented with $0$-s from the left. Similarly, if the integer is shorter than the pattern its decimal notation is supplemented with the $0$-s from the left.
翻译中…

For example, if the pattern is $*s* = 010$, than integers $92$, $2212$, $50$ and $414$ match the pattern, while integers $3$, $110$, $25$ and $1030$ do not.

翻译中…

Input

翻译中…

The first line of the input contains an integer $*t*$ ($1 ≤ *t* ≤ 100 000$) — the number of operation Sonya has to perform.

翻译中…

Next $*t*$ lines provide the descriptions of the queries in order they appear in the input file. The $*i*$-th row starts with a character $*c*_{*i*}$ — the type of the corresponding operation. If $*c*_{*i*}$ is equal to '+' or '-' then it's followed by a space and an integer $*a*_{*i*}$ ($0 ≤ *a*_{*i*} < 10^{18}$) given without leading zeroes (unless it's 0). If $*c*_{*i*}$ equals '?' then it's followed by a space and a sequence of zeroes and onse, giving the pattern of length no more than $18$.

翻译中…

It's guaranteed that there will be at least one query of type '?'.

翻译中…

It's guaranteed that any time some integer is removed from the multiset, there will be at least one occurrence of this integer in it.

翻译中…

Output

翻译中…

For each query of the third type print the number of integers matching the given pattern. Each integer is counted as many times, as it appears in the multiset at this moment of time.

翻译中…

Note

翻译中…

Consider the integers matching the patterns from the queries of the third type. Queries are numbered in the order they appear in the input.

翻译中…
  1. $1$ and $241$.
  2. $361$.
  3. $101$ and $361$.
  4. $361$.
  5. $4000$.
翻译中…

样例

Input #1
12
+ 1
+ 241
? 1
+ 361
- 241
? 0101
+ 101
? 101
- 101
? 101
+ 4000
? 0
Output #1
2
1
2
1
1
InputCopy OutputCopy
Input #2
4
+ 200
+ 200
- 200
? 0
Output #2
1
InputCopy OutputCopy
题目信息
题号
713A
时间限制
1 s
内存限制
256 MB
标签
数据结构
模拟

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