時間限制 2000 ms ・ 記憶體限制 256 MB
題目描述
試算表中的儲存格以 (列,欄) 表示,編號均由 1 開始。依序執行刪除列、刪除欄、插入列、插入欄、交換兩個儲存格內容等操作後,請追蹤原始儲存格資料的最後位置,或判定資料是否已被刪除。 同一個插入或刪除指令可指定多個不同編號,這些編號都以該指令執行前的試算表為準,列出順序不影響結果。插入是在每個指定列或欄之前加入一個空白列或欄。
輸入格式
每筆先給初始列數 r 與欄數 c,再給操作數 n。列、欄數均不超過 50,保證操作過程不會超過此上限。 接著 n 個指令:
- EX r₁ c₁ r₂ c₂:交換兩格內容。
- DR A x₁ … xₐ:刪除指定列。
- DC A x₁ … xₐ:刪除指定欄。
- IR A x₁ … xₐ:在指定列之前插入新列。
- IC A x₁ … xₐ:在指定欄之前插入新欄。 後四種指令中,1 ≤ A < 10,編號互不重複。 操作後是一個查詢數,再接著各查詢的原始列號與欄號。以初始尺寸 0 0 結束輸入。
輸出格式
每筆先輸出 Spreadsheet #k,k 從 1 起算。每個原始座標 (r,c),若仍存在,輸出 Cell data in (r,c) moved to (r',c');若已刪除,輸出 Cell data in (r,c) GONE。括號內的逗號前後沒有空白。不同試算表的輸出之間印一個空白行。
題目來源:UVa 512 — Spreadsheet Tracking。 原題:https://onlinejudge.org/external/5/512.pdf
範例測資
範例輸入 1
7 9 5 DR 2 1 5 DC 4 3 6 7 9 IC 1 3 IR 2 2 4 EX 1 2 6 5 4 4 8 5 5 7 8 6 5 0 0
範例輸出 1
Spreadsheet #1 Cell data in (4,8) moved to (4,6) Cell data in (5,5) GONE Cell data in (7,8) moved to (7,6) Cell data in (6,5) moved to (1,2)
請先登入後再提交程式碼
討論與題解
載入討論區…