# GO challenges - Diagonal Difference problem

# Problem

Given a square matrix, calculate the absolute difference between the sums of its diagonals.
For example, the square matrix `arr`

is shown below:

```
1 2 3
4 5 6
9 8 9
```

The left-to-right diagonal `= | 1 + 5 + 9 | = 15`

. The right to left diagonal `= | 3 + 5 + 9 | = 17`

. Their
absolute difference is`= | 15 - 17 | = 2`

.

Function description Complete the Diagonal Difference function in the editor below. It must return an integer representing the absolute diagonal difference. diagonalDifference takes the following parameter:

arr: an array of integers

# Input Format

The first line contains a single integer,`n`

, the number of rows and columns in the matrix .
Each of the next lines describes a row,`arr[i]`

, and consists of space-separated integers `arr[i][j]`

.

# Output Format

Print the absolute difference between the sums of the matrixâ€™s two diagonals as a single integer.

# Sample Input :

```
3
11 2 4
4 5 6
10 8 -12
```

# Sample Output :

```
15
```

# Explanation :

The primary diagonal is:

```
11
5
-12
```

Sum across the primary diagonal: 11 + 5 - 12 = 4 The secondary diagonal is:

```
4
5
10
```

Sum across the secondary diagonal: 4 + 5 + 10 = 19 Difference: |4 - 19| = 15 Note: |x| is the absolute value of x

# Solution

```
package main
import (
"fmt"
"math"
)
func main(){
var n int
fmt.Scan(&n)
a := make([][]int, n)
lsum,rsum := 0,0
for i:=0;i<n;i++{
a[i] = make([]int,n)
for j:=0;j<n;j++{
fmt.Scan(&a[i][j])
if i == j {
lsum += a[i][j]
}
if i+j == n-1 {
rsum += a[i][j]
}
}
}
diff := math.Abs(float64(lsum - rsum))
fmt.Println(diff)
}
```