512 - Spreadsheet Tracking

来源:互联网 发布:淘宝名忘了怎么找回 编辑:程序博客网 时间:2024/06/05 16:31

Data in spreadsheets are stored in cells,which are organized in rows (r) and columns (c). Some operationson spreadsheets can be applied to single cells (r,c), whileothers can be applied to entire rows or columns. Typical cell operationsinclude inserting and deleting rows or columns and exchanging cell contents.


Some spreadsheets allow users to mark collections of rows or columns fordeletion, so the entire collection can be deleted at once. Some (unusual)spreadsheets allow users to mark collections of rows or columns for insertionstoo. Issuing an insertion command results in new rows or columns being insertedbefore each of the marked rows or columns. Suppose, for example, the user marksrows 1 and 5 of the spreadsheet on the left for deletion. The spreadsheet thenshrinks to the one on the right.

 

 

 

 

 

 

 

 

 

 

 

 

 


If the user subsequently marks columns 3, 6,7, and 9 for deletion, the spreadsheet shrinks to this.

 

1

2

3

4

5

1

2

24

8

22

16

2

18

19

21

22

25

3

24

25

67

22

71

4

16

12

10

22

58

5

33

34

36

22

40

If the user marks rows 2, 3 and 5 forinsertion, the spreadsheet grows to the one on the left. If the user then markscolumn 3 for insertion, the spreadsheet grows to the one in the middle.Finally, if the user exchanges the contents of cell (1,2) and cell (6,5), thespreadsheet looks like the one on the right.

 


You must write tracking software thatdetermines the final location of data in spreadsheets that result from row,column, and exchange operations similar to the ones illustrated here.

Input 

The input consists of asequence of spreadsheets, operations on those spreadsheets, and queries aboutthem. Each spreadsheet definition begins with a pair of integers specifying itsinitial number of rows (r) and columns (c), followed by aninteger specifying the number (n)of spreadsheet operations. Row and column labeling begins with 1. The maximumnumber of rows or columns of each spreadsheet is limited to 50. The following nlines specify the desired operations.


An operation to exchange the contents of cell (r1c1)with the contents of cell (r2c2)is given by:


EX r1 c1 r2 c2


The four insert and delete commands--DC (deletecolumns), DR (delete rows), IC (insert columns),and IR (insert rows) are given by:


<commandA x1 x2   xA


where <command> is one of the four commands; A isa positive integer less than 10, and  are the labels of the columns or rows to be deleted orinserted before. For each insert and delete command, the order of the rows orcolumns in the command has no significance. Within a single delete or insertcommand, labels will be unique.


The operations are followed by an integer which is the number of queries forthe spreadsheet. Each query consists of positive integers r and c,representing the row and column number of a cell in the original spreadsheet.For each query, your program must determine the current location of the datathat was originally in cell (rc). The end of input isindicated by a row consisting of a pair of zeros for the spreadsheetdimensions.

Output 

For each spreadsheet,your program must output its sequence number (starting at 1). For each query,your program must output the original cell location followed by the finallocation of the data or the word GONE if the contents of theoriginal cell location were destroyed as a result of the operations. Separateoutput from different spreadsheets with a blank line.


The data file will not contain a sequence of commands that will cause thespreadsheet to exceed the maximum size.

Sample Input 

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

Sample Output 

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)

 

.0pt'�a@�0C�so-spacerun:yes'>        }

    }

}

0 0
原创粉丝点击