69 lines
970 B
Go
69 lines
970 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"sort"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
|
|
lines := parse()
|
|
|
|
// var first = 0
|
|
// var last = 0
|
|
|
|
var left = []int{}
|
|
var right = []int{}
|
|
|
|
for _, line := range lines {
|
|
fmt.Println(line)
|
|
|
|
if line == "" {
|
|
continue
|
|
}
|
|
|
|
nums := strings.Fields(line)
|
|
|
|
fmt.Println(nums[0], nums[1])
|
|
l, _ := strconv.Atoi(nums[0])
|
|
r, _ := strconv.Atoi(nums[1])
|
|
left = append(left, l)
|
|
right = append(right, r)
|
|
|
|
// for i := 0; i < len(line); i++ {
|
|
// //fmt.Println(int(line[i]))
|
|
// x, err := strconv.Atoi(string(line[i]))
|
|
// if err == nil {
|
|
// last = x
|
|
// break
|
|
// }
|
|
// }
|
|
}
|
|
|
|
sort.Ints(left)
|
|
sort.Ints(right)
|
|
|
|
var sum = 0
|
|
|
|
for i := 0; i < len(left); i++ {
|
|
var diff = right[i] - left[i]
|
|
if diff < 0 {
|
|
diff *= -1
|
|
}
|
|
sum += diff
|
|
}
|
|
|
|
fmt.Println(sum)
|
|
|
|
}
|
|
|
|
func parse() []string {
|
|
filePath := os.Args[1]
|
|
data, _ := os.ReadFile(filePath)
|
|
chunks := strings.Split(string(data), "\n")
|
|
return chunks
|
|
}
|