#P16585. [GKS 2016 #C] Safe Squares

[GKS 2016 #C] Safe Squares

Problem Description

Codejammon trainers are actively looking for monsters, but if you are not a trainer, these monsters could be really dangerous for you. You might want to find safe places that do not have any monsters!

Consider our world as a grid, and some of the cells have been occupied by monsters. We define a safe square as a grid-aligned D×DD \times D square of grid cells (with D1D \ge 1) that does not contain any monsters. Your task is to find out how many safe squares (of any size) we have in the entire world.

Input Format

The first line of the input gives the number of test cases, TT. TT test cases follow. Each test case starts with a line with three integers, RR, CC, and KK. The grid has RR rows and CC columns, and contains KK monsters. KK more lines follow; each contains two integers RiR_i and CiC_i, indicating the row and column that the i-th monster is in. (Rows are numbered from top to bottom, starting from 0; columns are numbered from left to right, starting from 0.)

Output Format

For each test case, output one line containing Case #x: y, where xx is the test case number (starting from 1) and yy is the total number of safe zones for this test case.

2
3 3 1
2 1
4 11 12
0 1
0 3
0 4
0 10
1 0
1 9
2 0
2 4
2 9
2 10
3 4
3 10
Case #1: 10
Case #2: 51

Hint

The grid of sample case #1 is:

0 0 0
0 0 0
0 1 0

Here, 0 represents a cell with no monster, and 1 represents a cell with a monster. It has 1010 safe squares: 88 1×11\times 1 and 22 2×22\times 2.

The grid of sample case #2 is:

0 1 0 1 1 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1 0
1 0 0 0 1 0 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 1

Note that sample case #2 will only appear in the Large dataset. It has 5151 safe squares: 3232 1×11\times 1, 1313 2×22\times 2, 55 3×33\times 3, and 11 4×44\times 4.

Limits

1T201 \le T \le 20.

(Ri,Ci)(Rj,Cj)(R_i, C_i) \ne (R_j, C_j) for iji \ne j. (No two monsters are in the same grid cell.)

0Ri<R0 \le R_i < R, i from 11 to KK

0Ci<C0 \le C_i < C, i from 11 to KK

Small dataset (Test set 1 - Visible)

1R101 \le R \le 10.

1C101 \le C \le 10.

0K100 \le K \le 10.

Large dataset (Test set 2 - Hidden)

1R30001 \le R \le 3000.

1C30001 \le C \le 3000.

0K30000 \le K \le 3000.