#include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define int long long #define double long double typedef vector VI; typedef pair pii; typedef vector VP; typedef vector VS; typedef priority_queue PQ; templatebool chmax(T &a, const T &b) { if (a < b) { a = b; return 1; } return 0; } templatebool chmin(T &a, const T &b) { if (b < a) { a = b; return 1; } return 0; } #define fore(i,a) for(auto &i:a) #define REP(i,n) for(int i=0;i, greater > q2; signed main() { cin.tie(0); ios::sync_with_stdio(false); int N, X, Y, Z; cin >> N >> X >> Y >> Z; PQ Q; REP(i, N) { int a; cin >> a; a++; Q.push(a); } while (!Q.empty()) { int now = Q.top(); Q.pop(); if (now == 0)continue; if (now >= 10000 && now / 10000 <= Z) { Z -= now / 10000; now %= 10000; Q.push(now); } else if (now >= 10000 && Z) { now -= 10000 * Z; Z = 0; Q.push(now); } else if (Z) { Z--; } else if (now / 5000 <= Y && now >= 5000) { Y -= now / 5000; now %= 5000; Q.push(now); } else if (now >= 5000 && Y) { now -= 5000 * Y; Y = 0; Q.push(now); } else if(Y){ Y--; } else { X -= (now - 1) / 1000 + 1; } } //cout << X <<" "<