#include using namespace std; using namespace __gnu_pbds; template using ordered_set = tree, rb_tree_tag, tree_order_statistics_node_update>; template using ordered_multiset = tree, rb_tree_tag, tree_order_statistics_node_update>; #define int long long #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define vi vector #define vii vector #define ld long double #define pii pair mt19937 mt(time(0)); namespace io { template istream &operator>>(istream &cin, pair &pr) { cin >> pr.first >> pr.second; return cin; } template ostream &operator<<(ostream &cout, pair &pr) { cout << pr.first << ' ' << pr.second; return cout; } template istream &operator>>(istream &cin, vector &vec) { for (T &i : vec) cin >> i; return cin; } template ostream &operator<<(ostream &cout, vector vec) { for (T i : vec) cout << i << ' '; return cout; } } using namespace io; int M = 998244353; int pw(int x, int y) { x %= M; int res = 1; while (y) { if (y & 1) res = res * x % M; x = x * x % M, y /= 2; } return res; } int inv(int x) { return pw(x, M - 2); } void solve() { int n, u = 0; cin >> n; vector v(n); cin >> v; sort(all(v)); cout << fixed << setprecision(7); long double q1 = v[(n - 1) / 4] + v[(n - 2) / 4]; long double q2 = v[(n - 1) / 2] + v[n / 2]; long double q3 = v[(3 * n) / 4] + v[(3 * n + 1) / 4]; q1 /= 2, q2 /= 2, q3 /= 2; long double iqr = q3 - q1; for (auto &x : v) u += (x < q1 - 1.5 * iqr || x > q3 + 1.5 * iqr); cout << q1 << ' ' << q2 << ' ' << q3 << ' ' << u; } signed main() { ios::sync_with_stdio(0); cin.tie(0); int t = 1; // cin >> t; while (t--) solve(), cout << '\n'; return 0; }