時間限制 2000 ms ・ 記憶體限制 256 MB
題目描述
SetStack 電腦的堆疊元素是集合,集合中也可包含其他集合。初始堆疊為空,支援五種操作:
PUSH:把空集合推入堆疊。DUP:複製頂端集合,再推入一份。UNION:取出頂端兩個集合,推入它們的聯集。INTERSECT:取出頂端兩個集合,推入它們的交集。ADD:先取出集合 A,再取出集合 B;把 A 整個作為一個元素加入 B,將所得集合推回。不是把 A 的元素逐個加入 B。
集合不含重複元素,相同集合視為相同元素。每次操作後請輸出堆疊頂端集合的元素數量。
輸入格式
第一行是測試資料筆數 T,0 ≤ T ≤ 5。每筆先有操作數 N,0 ≤ N ≤ 2000,接著 N 行各有一個上述指令。
所有指令都保證合法,不會對空堆疊執行需要取出元素的操作。
輸出格式
每次操作輸出一行頂端集合的元素數。每筆測試資料結束後輸出一行 ***。
題目來源:UVa 12096 — The SetStack Computer。 原題:https://onlinejudge.org/external/120/12096.pdf
範例測資
範例輸入 1
2 9 PUSH DUP ADD PUSH ADD DUP ADD DUP UNION 5 PUSH PUSH ADD PUSH INTERSECT
範例輸出 1
0 0 1 0 1 1 2 2 2 *** 0 0 1 0 0 ***
請先登入後再提交程式碼
討論與題解
載入討論區…