基礎班例題

物品集合

時間限制 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

「跑範例測資」只跑題目敘述上的範例,會顯示你的輸出與正確答案的對照; 「提交評測」會跑完整的測資並給實際結果,但不會顯示測資內容。兩者都不需要帳號,也不會留下成績紀錄。