#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
int main() {
int n;
long t;
vector<long> ans; // 用来存储数组
cin>>n;
for(int i=0; i<n;i++) {
cin >> t;
ans.push_back(t);
}
long maxn = max(ans[0], ans[n-1]); // 无论怎么排序,最大值,最小值都是两边的元素
long minn = min(ans[0], ans[n-1]);
long midn;
if(n%2) midn = ans[n/2]; // 奇数个元素
else midn = ans[(n-1)/2] + ans[(n+1)/2]; // 偶数个元素
double mid = 1.0 * midn / 2;
if(mid - midn/2 <1e-6){ // 用来判断是否为整数
midn = n%2 ? midn : midn/2; // 中位数根据数组长度来确定
cout<<maxn << " " << midn << " " << minn <<endl;
}
else printf("%d %.1lf %d\n",maxn, mid, minn);
return 0;
}