基礎班例題
物品集合
時間限制 5000 ms · 記憶體限制 256 MB · C++
在一個遊戲世界中,對於任何的操作玩家們需要管理自己的「物品集合」。
玩家 "Alex" 是一位新手冒險家,他需要你的幫助來管理他的物品。
初始時,Alex 的物品集合是空的。你需要根據 Alex 的指令來操作他的物品集合。指令有以下幾種:
add x: 將物品 $x$ 加入集合,如果物品 $x$ 已經存在集合,則忽略掉此操作,並輸出 "ignore"。remove x: 將物品 $x$ 從集合中移除,如果物品 $x$ 原本就不存在集合,則忽略掉此操作,並輸出 "ignore"。check x: 檢查物品 $x$ 是否在集合中,如果在則輸出 "yes",否則輸出 "no"。
請你編寫一個程式,模擬 Alex 的物品集合管理過程。
輸入說明
第一行包含一個整數 $n$,表示指令的數量。
接下來的 $n$ 行,每一行都代表一個指令,指令的格式如下:
- 指令的起始是一個字串,可能是
add、remove或check中的其中一個。 字串後面緊接著一個空格,然後是一個整數 $x$,表示要操作的物品編號。
$1 \le n \le 5 \cdot 10^{5}$
- $1 \le x \le 10^9$
輸出說明
對於每個add或remove指令,如果操作被忽略,則輸出一行 "ignore"。
對於每個check指令,輸出 "yes" 或 "no"。
最後一行,按照從小到大的順序輸出「物品集合」中的所有物品編號,物品編號之間用空格分隔。
範例
範例輸入 1
7 add 1 add 1 remove 2 remove 2 check 1 add 2 check 2
範例輸出 1
ignore ignore ignore yes yes 1 2
C++77 / 50,000
「跑範例測資」只跑題目敘述上的範例,會顯示你的輸出與正確答案的對照; 「提交評測」會跑完整的測資並給實際結果,但不會顯示測資內容。兩者都不需要帳號,也不會留下成績紀錄。