a805. CPE:Spreadsheet Tracking (UVa 512)

中等CPE

時間限制 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)
請先登入後再提交程式碼

討論與題解

載入討論區…

更多