← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)

	for i := 0; i < t; i++ {
		var a, b, x, y int
		fmt.Fscan(in, &a, &b, &x, &y)

		if a == b {
			fmt.Fprintln(out, 0)
			continue
		}

		if a > b {
			if a%2 != 0 && b == a-1 {
				fmt.Fprintln(out, y)
			} else {
				fmt.Fprintln(out, -1)
			}
		} else {
			ans := 0
			for k := a; k < b; k++ {
				if k%2 == 0 {
					if x < y {
						ans += x
					} else {
						ans += y
					}
				} else {
					ans += x
				}
			}
			fmt.Fprintln(out, ans)
		}
	}
}
```