#include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<ctime> #include<string> #include<algorithm> #include<vector> #include<queue> #include<stack> #include<map> using namespace std; typedef long long LL; const int MR=1e5+10; int n,A,B,X,Y,h[MR]; int b[MR]; bool cmp(int x,int y){ return x%X>y%X; } bool check(int k){ int a=A; LL sum=0; int cnt=0; for(int i=1;i<=n;i++){ if(h[i]<=k) continue; cnt++; b[cnt]=h[i]-k; } sort(b+1,b+cnt+1,cmp); for(int i=1;i<=cnt;i++){ if(a>=b[i]/X){ a-=b[i]/X; b[i]%=X; } else if(a>0){ b[i]-=a*X; a=0; break; } } for(int i=a+1;i<=cnt;i++){ sum+=b[i]; } return sum<=1ll*B*Y; } int main(){ cin>>n>>A>>B>>X>>Y; for(int i=1;i<=n;i++){ cin>>h[i]; } int l=-1,r=1e9+10; while(l+1<r){ int mid=(l+r)/2; if(check(mid)){ r=mid; } else{ l=mid; } } cout<<r<<endl; return 0; }