12104 - Pour Water (8 Directions)   

Description

A farmer has a crop land. The land consists of stones (S) and holes (H) as illustrated in the following figure. Note that there is only one hole on the land’s first row.

S

S

H

S

S

H

H

H

H

S

H

S

S

S

S

S

H

S

H

H

S

H

S

S

S

 

The farmer decides to water his crops, so he pours some water through the hole on the first row into the land. Assume that the amount of water is infinite, and the water can move in the eight directions: up, down, left, right, upper-left, upper-right, lower-left, lower-right. Please write a program to find out where the water would reach.

For example, you are given a coordinate (0,2) representing the entrance and a table representing the farmer’s land initially:

S

S

H

S

S

H

H

H

H

S

H

S

S

S

S

S

H

S

H

H

S

H

S

S

S

 

After the farmer pours water into the land, water floods throughout the holes of the land. Finally, a portion of the holes will be filled with water like the following table.

S

S

W

S

S

W

W

W

W

S

W

S

S

S

S

S

W

S

H

H

S

W

S

S

S

 

where W means the corresponding hole is filled with water.

Note that

1.      This problem involves three files.

  • function.h: Function definition of flooding.
  • function.c: Function implementation of flooding.
  • main.c: A driver program to test your implementation.

You will be provided with main.c and function.h, and asked to implement function.c.

2.     For OJ submission:

       Step 1. Submit only your function.c into the submission block. (Please choose c compiler) 

       Step 2. Check the results and debug your program if necessary.

Hints:

You can use just 4-direction to pass 6 testcases.

function.h

main.c

Input

The first line has an integer N(1<=N<=100), which means the number of test cases.

For each case, the first line has three integers. The first and second integers R and C (3<=R, C<=500) represent the numbers of rows and columns of the land, respectively. The total number of elements in the land is thus R x C. The third integer X (0<=X<=C-1) means the column of the entrance at the first row. The coordinate of the entrance is thus (0,X). The following R lines, each containing C characters, specify the elements of the farmer’s land.

Output

Print out all elements of the lands row-by-row, and there is a '\n' at the end of each line. The states of all lands should be separated by a new line character (\n).

Sample Input  Download

Sample Output  Download

Partial Judge Code

12104.c

Partial Judge Header

12104.h

Tags




Discuss