import std.stdio, std.string, std.conv, std.algorithm;

void main()
{
    int n = readln.chomp.to!int;
    auto inp = readln.split.map!(to!int);
    int A = inp[0],
        B = inp[1];
    int C = readln.chomp.to!int;
    int[] cs = new int[](n);
    foreach(i; 0 .. n)
    {
        cs[i] = readln.chomp.to!int;
    }
    cs.sort!"a>b"();

    int[] sum = new int[](n + 1);
    real[] dp = new real[](n + 1);
    sum[0] = C;
    dp[0] = 1.0 * sum[0] / A;
    foreach(i; 1 .. n + 1)
    {
        if(dp[i - 1] < 1.0 * (sum[i - 1] + cs[i - 1]) / (A + i * B))
        {
            sum[i] = sum[i - 1] + cs[i - 1];
            dp[i] = 1.0 * sum[i] / (A + i * B);
        }
        else
        {
            sum[i] = sum[i - 1];
            dp[i] = dp[i - 1];
        }
    }
    writeln(cast(int)dp[n]);
}