QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 512 MB Puntuación total: 100

#3786. 破坏你的电子表格 (Spreadsheet Tracking II)

Estadísticas

电子表格中的数据存储在单元格中,这些单元格按行 ($r$) 和列 ($c$) 排列。对电子表格的一些操作可以应用于单个单元格 $(r, c)$,而另一些操作则可以应用于整行或整列。典型的单元格操作包括插入和删除行或列,以及交换单元格内容。

一些电子表格允许用户标记一组行或列进行删除,从而可以一次性删除整个集合。一些(不常见的)电子表格还允许用户标记一组行或列进行插入。发出插入命令会导致在每个标记的行或列之前插入新的行或列。

例如,假设用户标记了左侧电子表格的第 1 行和第 5 行进行删除,然后标记了第 3、6、7 和 9 列进行删除,电子表格将缩小为右侧的电子表格:

如果用户标记了第 2、3 和 5 行进行插入,然后标记了第 3 列进行插入,电子表格将增长为下方所示:

现在,有人通过执行若干插入、删除和交换操作(详细说明如下)损坏了您的电子表格。

您的任务是计算保留(未删除)的单元格数量,以及原始单元格与其最终位置之间的总距离。如果一个位于 $(x_1, y_1)$ 的单元格移动到了 $(x_2, y_2)$,则总距离增加 $|x_1-x_2|+|y_1-y_2|$。您还需要确定一些重要数据的最终位置。

输入格式

输入由一系列电子表格、对这些电子表格的操作以及关于它们的查询组成。每个电子表格的定义以一对整数开始,指定其初始行数 ($r$) 和列数 ($c$),随后是一个整数,指定电子表格操作的数量 ($n$)。行和列的编号从 1 开始。接下来的 $n$ 行指定了所需的操作。$1 \le r, c \le 5000$,$1 \le n \le 50$。在任何时候至少会有一行和一列。

交换单元格 $(r_1, c_1)$ 和 $(r_2, c_2)$ 内容的操作由以下命令给出:EX r1 c1 r2 c2。四种插入和删除命令——DC(删除列)、DR(删除行)、IC(插入列)和 IR(插入行)由以下格式给出: <command> A x1 x2 ... xA,其中 <command> 是四种命令之一;$A$ 是一个不大于 5 的正整数,$x_1, \dots, x_A$ 是要删除或在其之前插入的列或行的编号。对于每个插入和删除命令,命令中行或列的顺序没有意义。在单个删除或插入命令中,编号是唯一的。

操作之后是一个整数 $Q$ ($Q \le 10000$),它是该电子表格的查询数量。每个查询由正整数 $r$ 和 $c$ 组成,代表原始电子表格中单元格的行号和列号。对于每个查询,您的程序必须确定最初位于单元格 $(r, c)$ 中的数据的当前位置。

输入的结束由一行包含一对零的电子表格维度表示。

输出格式

对于每个电子表格,您的程序必须输出其序列号(从 1 开始)。在下一行中,您的程序必须输出保留的单元格数量和总移动距离。

对于每个查询,您的程序必须输出原始单元格位置,后跟数据的最终位置,或者如果原始单元格位置的内容因操作而被销毁,则输出单词 GONE

不同电子表格的输出之间请用空行分隔。

样例

样例输入 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
There are 25 cell(s) kept, total distance = 29
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)

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.