package main import ( "fmt" "sort" ) func main() { var n, x, y, z int fmt.Scan(&n) fmt.Scan(&x) fmt.Scan(&y) fmt.Scan(&z) a := make([]int, n) for i := 0; i < n; i++ { fmt.Scan(&a[i]) } fmt.Println(task(a, x, y, z)) } func task(a []int, x, y, z int) string { for task2(a) { sort.Sort(sort.Reverse(sort.IntSlice(a))) for a[0] > -1 { if x+y+z == 0 { return "No" } if z != 0 { z-- a[0] -= 10000 break } if y != 0 { y-- a[0] -= 5000 break } if x != 0 { x-- a[0] -= 1000 break } } } if task2(a) { return "No" } else { return "Yes" } } func task2(a []int) bool { for _, n := range a { if n > -1 { return true } } return false }