← Home
package main

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

type Vec struct {
	x, y int64
}

func rot(v Vec) Vec {
	return Vec{v.y, -v.x}
}

func main() {
	in := bufio.NewReader(os.Stdin)

	var A, B, C Vec
	if _, err := fmt.Fscan(in, &A.x, &A.y); err != nil {
		return
	}
	fmt.Fscan(in, &B.x, &B.y)
	fmt.Fscan(in, &C.x, &C.y)

	if C.x == 0 && C.y == 0 {
		cur := A
		for i := 0; i < 4; i++ {
			if cur.x == B.x && cur.y == B.y {
				fmt.Print("YES")
				return
			}
			cur = rot(cur)
		}
		fmt.Print("NO")
		return
	}

	s := C.x*C.x + C.y*C.y
	cur := A
	for i := 0; i < 4; i++ {
		dx := B.x - cur.x
		dy := B.y - cur.y
		u := dx*C.x + dy*C.y
		v := dx*C.y - dy*C.x
		if u%s == 0 && v%s == 0 {
			fmt.Print("YES")
			return
		}
		cur = rot(cur)
	}

	fmt.Print("NO")
}