package main import ( "fmt" ) var ( N int a []int b []int ) func resolve() bool { score := 0 others := make(map[int]int) for i := 0; i < N; i++ { if b[i] == 0 { score += a[i] continue } others[b[i]] += a[i] } for _, v := range others { if score < v { return false } } return true } func main() { fmt.Scanf("%d\n", &N) a = make([]int, N) for i := 0; i < N; i++ { fmt.Scanf("%d", &a[i]) } fmt.Scanf("\n") b = make([]int, N) for i := 0; i < N; i++ { fmt.Scanf("%d", &b[i]) } fmt.Scanf("\n") if resolve() { fmt.Println("YES") } else { fmt.Println("NO") } }