#nullable enable #region var (_input, _iter) = (Array.Empty(), 0); T I() where T : IParsable { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Trim().Split(' '), 0); return T.Parse(_input[_iter++], null); } #endregion var r = I(); var p = I(); var q = I(); var ez = Enumerable.Range(0, 4).Select(_ => I()).ToArray(); var ans = 0L; var fail = ez.Sum() / 3 + 1; while (fail - ans >= 2) { var tz = ez.AsSpan().ToArray(); var m = (ans + fail) / 2; var l = 0L; for (var i = 0; i < 3; i++) l += Math.Max(m - tz[i], 0); var s = 0L; for (var i = 0; i < 4; i++) { var plus = tz[i]; if (i != 3) plus -= m; s += Math.Max(plus, 0); } if (s >= l && p * m + q * l <= r) ans = m; else fail = m; } Console.WriteLine(ans);