package utils func Difference[T any](a, b []T, com func(T, T) bool) []T { var ans []T for _, x := range a { unique := true for _, y := range b { if com(x, y) { unique = false break } } if unique { ans = append(ans, x) } } return ans } func Intersect[T any](a, b []T, com func(T, T) bool) []T { var ans []T for _, x := range a { for _, y := range b { if com(x, y) { ans = append(ans, x) break } } } return ans }