#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 n = I(); var az = new long[n]; for (var i = 0; i < n; i++) az[i] = I() * 8; static long M(long[] a) { var l = a.Length; if (l % 2 != 0) return a[l / 2]; return (a[l / 2] + a[l / 2 - 1]) / 2; } Array.Sort(az); var q2 = M(az); var q1 = M(az[..(n / 2)]); Array.Reverse(az); var q3 = M(az[..(n / 2)]); var iqr = q3 - q1; var u = 0; foreach (var x in az) if (x < q1 - iqr / 2 * 3 || x > q3 + iqr / 2 * 3) u++; var qz = new double[]{ q1, q2, q3 }; for (var i = 0; i < 3; i++) qz[i] /= 8; Console.WriteLine(string.Join(' ', [.. qz, u]));