package main import ( "fmt" ) var ( N int a []int b []int ) func resolve() string { score := 0 others := 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 "NO" } } return "YES" } 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") fmt.Println(resolve()) }