303688: CF713A. Sonya and Queries

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Sonya and Queries

题意翻译

题意: 有t次操作,操作分三类: 1.形如<+,a>,在multiset中插入一个a. 2.形如<-,a>,在multiset中删除一个a. 3.形如<?,a>,询问multiset中有多少个数的每一位奇偶性都与a相同(位数不足以0补齐). 输入格式: 第一行一个t. 接下来t行,每行一种操作. 输出格式: 若干行,按顺序输出3操作的结果. 数据范围: t:[1,1e5] a:[0,1e18] 注意: multiset不去重. 记得开long long. 感谢@尘染梦 提供的翻译

题目描述

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.

输入输出格式

输入格式


The first line of the input contains an integer $ t $ ( $ 1<=t<=100000 $ ) — 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.

输出格式


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.

输入输出样例

输入样例 #1

12
+ 1
+ 241
? 1
+ 361
- 241
? 0101
+ 101
? 101
- 101
? 101
+ 4000
? 0

输出样例 #1

2
1
2
1
1

输入样例 #2

4
+ 200
+ 200
- 200
? 0

输出样例 #2

1

说明

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

题意翻译

题意: 有t次操作,操作分三类: 1.形如<+,a>,在multiset中插入一个a. 2.形如<-,a>,在multiset中删除一个a. 3.形如<?,a>,询问multiset中有多少个数的每一位奇偶性都与a相同(位数不足以0补齐). 输入格式: 第一行一个t. 接下来t行,每行一种操作. 输出格式: 若干行,按顺序输出3操作的结果. 数据范围: t:[1,1e5] a:[0,1e18] 注意: multiset不去重. 记得开long long. 感谢@尘染梦 提供的翻译

加入题单

上一题 下一题 算法标签: