#include #include #include #include #define rep(i, n) for(i = 0; i < n; i++) #define int long long using namespace std; int N, X, Y, Z; int A[100000]; signed main() { int i; cin >> N >> X >> Y >> Z; rep(i, N) { cin >> A[i]; A[i] = A[i] / 1000 + 1; } rep(i, N) { int cnt = min(A[i] / 10, Z); A[i] -= 10 * cnt; Z -= cnt; if (A[i] < 10) { cnt = 0; } else { cnt = min((A[i] - 5) / 5, Y); } A[i] -= 5* cnt; Y -= cnt; if (A[i] < 10) { cnt = 0; } else { cnt = min(A[i] - 9, X); } A[i] -= cnt; X -= cnt; if (A[i] >= 10) { cout << "No" << endl; return 0; } } typedef pair P; //(A[i], i) priority_queue

que; rep(i, N) { if (A[i] > 0) que.push(P(A[i], i)); } while (!que.empty()) { P now = que.top(); que.pop(); int a = now.first; int id = now.second; if (Z > 0) { a -= 10; Z--; if (a > 0) que.push(P(a, id)); } else if (Y > 0) { a -= 5; Y--; if (a > 0) que.push(P(a, id)); } else if (X > 0) { a--; X--; if (a > 0) que.push(P(a, id)); } else { cout << "No" << endl; return 0; } } cout << "Yes" << endl; return 0; }