47 lines
708 B
Go
47 lines
708 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
left := map[int]int{};
|
|
right := map[int]int{};
|
|
reader := bufio.NewReader(os.Stdin)
|
|
|
|
for {
|
|
raw, _, _ := reader.ReadLine()
|
|
line := string(raw)
|
|
|
|
if strings.Trim(line, " ") == "" {
|
|
break
|
|
}
|
|
|
|
values := strings.Split(line, " ")
|
|
|
|
l, _ := strconv.Atoi(values[0])
|
|
r, _ := strconv.Atoi(values[1])
|
|
|
|
left[l] = left[l] + 1
|
|
right[r] = right[r] + 1
|
|
}
|
|
|
|
ans := part2(left, right)
|
|
|
|
fmt.Println("", ans)
|
|
}
|
|
|
|
func part2(left map[int]int, right map[int]int) int {
|
|
sum := 0
|
|
|
|
for key, l_count := range left {
|
|
count := right[key]
|
|
sum += l_count * count * key
|
|
}
|
|
|
|
return sum;
|
|
}
|