#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int num = 0;
int minn = 0;
int maxx = 0;
double mid = 0;
int x = 0;
cin >> num;
int mid_index = (num-1)/2;
if((num-1)%2==0)
{
for(int i = 0; i < num; i++)
{
cin >> x;
if(i == 0)
{
minn = mid = maxx = x;
}
else if(i == num - 1)
maxx = x;
else if(i == mid_index)
mid = x;
}
if(minn > maxx)
{
x = minn;
minn = maxx;
maxx = x;
}
}
else
{
int mid1 = 0;
int mid2 = 0;
for(int i = 0; i < num; i++)
{
cin >> x;
if(i == 0)
{
minn = mid = maxx = x;
}
else if(i == num - 1)
maxx = x;
if(i == mid_index)
mid1 = x;
else if(i == mid_index+1)
mid2 = x;
}
if(num>1){
if(minn > maxx)
{
x = minn;
minn = maxx;
maxx = x;
}
mid = (double)(mid1+mid2)/2.0;
if((mid1+mid2)%2!=0){
printf("%d %.1f %d", maxx, mid, minn);
return 0;
}
}
}
printf("%d %.0f %d", maxx, mid, minn);
return 0;
}
import java.util.Scanner;
public class Test{
public static void main(String[] args){
int num = 0;
int minn = 0;
int maxx = 0;
double mid = 0;
int x;
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
int mid_index = (num-1)/2;
if((num-1)%2==0)
{
for(int i = 0; i < num; i++)
{
x = sc.nextInt();
if(i == 0)
{
minn = (int) (mid = maxx = x);
}
else if(i == num - 1)
maxx = x;
else if(i == mid_index)
mid = x;
}
}
else
{
int mid1=0;
int mid2=0;
for(int i = 0; i < num; i++)
{
x = sc.nextInt();
if(i == 0)
{
minn = (int) (mid = maxx = x);
}
else if(i == num - 1)
maxx = x;
if(i == mid_index)
mid1 = x;
else if(i == mid_index+1)
mid2 = x;
}
mid = (double)(mid1+mid2)/2.0;
}
if(minn > maxx)
{
x = minn;
minn = maxx;
maxx = x;
}
String s = Double.toString(mid);
if (s.indexOf(".") > 0) {
// 去掉多余的0
s = s.replaceAll("0+?$", "");
// 如最后一位是.则去掉
s = s.replaceAll("[.]$", "");
}
System.out.println(maxx + " "+ s + " " + minn);;
}
}