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; }