Madison, is a little girl who is fond of toys. Her friend Mason works in a toy manufacturing factory . Mason has a 2D board of size with rows and columns. The board is divided into cells of size with each cell indicated by it’s coordinate . The cell has an integer written on it. To create the toy Mason stacks number of cubes of size on the cell

.

Given the description of the board showing the values of

and that the price of the toy is equal to the 3d surface area find the price of the toy.

**Input Format**

The first line contains two space-separated integers and

the height and the width of the board respectively.

The next lines contains space separated integers. The integer in line denotes.

**Constraints**

- 1 <= H , W <= 100
- 1 <= Aij <= 100

**Output Format**

Print the required answer, i.e the price of the toy, in one line.

**Sample Input 0**

1 1 1

**Sample Output 0**

6

**Explanation 0**

The surface area of

cube is 6.

**Sample Input 1**

3 3 1 3 4 2 2 3 1 2 4

**Sample Output 1**

60

**Explanation 1**

The sample input corresponds to the figure described in problem statement.

#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> int checkN(int n) { if(n < 0) return 0; return n; } int surfaceArea(int A_size_rows, int A_size_cols, int A[A_size_rows][A_size_cols]) { unsigned int buttomUpper= 2,right =1, back =1,lift=1,front=1; int total = 0,i,j; for(i=0;i<A_size_rows;i++) { for(j=0;j<A_size_cols;j++) { int tmp=A[i][j]; if(i > 0 ) back = checkN(tmp - A[i-1][j]); else back = tmp; if(j > 0) lift = checkN(tmp - A[i][j-1]); else lift = tmp; if(j+1 < A_size_cols) right = checkN(tmp -A[i][j+1]); else right = tmp; if(i+1 < A_size_rows) front =checkN(tmp -A[i+1][j]); else front = tmp; total = total + (buttomUpper + lift + back + front + right); } } return total; } int main() { int H,A_i; int W,A_j; scanf("%i %i", &H, &W); int A[H][W]; for (A_i = 0; A_i < H; A_i++) { for (A_j = 0; A_j < W; A_j++) { scanf("%i",&A[A_i][A_j]); } } int result = surfaceArea(H, W, A); printf("%d\n", result); return 0; }

#### RELATED POST

Sorry no more post for this category.

## Leave a Reply