bearrrrrro是個很聰明的人。他除了很會寫程式之外,還常常在各個科目電爆大家,像是數學物理英文日文。他因此有了許多綽號,像是「電熊」、「卷熊」、等等。他還有一些相似的綽號,像是"bearo","bearrrrro","bearrrrrrrro","bearrro"。有天,電熊在上課的時候很無聊,因為他都會了。卷熊決定來認真數他有幾個綽號來消磨時間。又因為電熊實在是太電了,他花不到0.0000001毫秒就數完了。電熊數完之後,心裡想:「完蛋了,還有好久才要下課喔⋯⋯那不然我來一個一個慢慢數每個綽號有幾個人叫好了。」於是卷熊決定在紙上一條一條地列出來,再慢慢數有每個綽號有幾個人叫。因為電熊實在不習慣一條一條列,所以他可能列到一半會突然發現前面有列錯的。你的任務就是對他紙上的紀錄做一些操作。
第一行包含一個數字 $n( n \leq 1000 )$,代表接下來有 $n$ 幾次操作。
第 $2$ ~ $n+1$ 行的格式如下:
$1$ $a$ 多一個人叫 $a$ 這個綽號,a 不會是空字串
$2$ $a$ 電熊列錯了,少一個人叫 $a$ 這個綽號。如果這個綽號已經沒有人叫的話,電熊會把這個綽號從紙上擦掉。
$3$ 照綽號的「字典序」列出目前在紙上的綽號和有幾個人叫。若目前紙上沒有任何綽號請不要印任何東西。每個綽號印一行。
$4$ 印出目前在紙上總共有幾種不同的綽號
紙上剛開始沒有任何綽號。保證沒有任何不合法的操作。
參考範例輸出們
16
3
1 a
1 b
1 c
4
2 b
3
1 b
3
4
1 a
1 a
2 a
3
2 a
4
3
a 1
c 1
a 1
b 1
c 1
3
a 2
b 1
c 1
3
19
4
3
1 bearo
1 bearo
1 bearrrrrro
1 bearrrro
3
4
2 bearrrrrro
3
4
1 bearrrrro
3
2 bearo
2 bearo
2 bearrrro
2 bearrrrro
3
4
0
bearo 2
bearrrro 1
bearrrrrro 1
3
bearo 2
bearrrro 1
2
bearo 2
bearrrro 1
bearrrrro 1
0
n = int(input())
dic = {}
for _ in range(n):
inputs = input().split()
op = int(inputs[0])
if op == 1:
nickname = inputs[1]
"""
ADD YOUR CODE HERE
"""
elif op == 2:
nickname = inputs[1]
"""
ADD YOUR CODE HERE
"""
elif op == 3:
"""
ADD YOUR CODE HERE
ans = [] # 把(key, value)當成tuple放進來
"""
ans.sort()
for key, value in ans:
print(key, value)
elif op == 4:
"""
ADD YOUR CODE HERE
"""
NEOJ Problem 3035
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0 | 10 | |
2 | 1 | 10 | |
3 | 2 | 10 | |
4 | 3 | 10 | |
5 | 4 | 10 | |
6 | 5 | 10 | |
7 | 6 | 10 | |
8 | 7 | 10 | |
9 | 8 | 10 | |
10 | 9 | 10 |