#include <stdio.h>

/*描述
输入n科成绩(浮点数表示),统计其中的最高分,最低分以及平均分。

数据范围:1 \le n \le 100 \1≤n≤100  , 成绩使用百分制且不可能出现负数
输入描述:
两行,

第1行,正整数n(1≤n≤100)

第2行,n科成绩(范围0.0~100.0),用空格分隔。
输出描述:
输出一行,三个浮点数,分别表示,最高分,最低分以及平均分(小数点后保留2位),用空格分隔。
*/

int main()
{
	int gao = 0;
	int n = 0;
	int a = 0;
	int b = 0;
	int c = 0;
	int e = 0;
	double d = 0;
	double f = 0;
	double arr[100] = { 0 };
	//定义一堆变量和数组emmmmm
	scanf("%d ", &n);
	//先给变量n赋值,注意%d后面的空格不要忽略了,能跳过\n和空格
	while (e < n)
	{
		scanf("%lf", &arr[e]);
		e++;

	} 
	//这里循环读入n次并把值赋给数组
		for (b = 1; b < n; b++)
		{
			if (arr[gao] < arr[b])
			{
				f = arr[gao];
				arr[gao] = arr[b];
				arr[b] = f;
			}
		}printf("%.2lf ", arr[gao]);
		//这里是把下标0和下标1的数据进行比较,如果下标1的数大,就把两个数的值交换一下,然后下标0和2再比,
		//如此循环

		for (a = 1; a < n; a++)
		{
			if (arr[gao] > arr[a])
			{
				f = arr[gao];
				arr[gao] = arr[a];
				arr[a] = f;
			}
		}printf("%.2lf ", arr[gao]);
		//这里方法和上面的是一样的

		for (c; c < n; c++)
		{
			d = d + arr[c];

		}
		d /= n;
		printf("%.2lf ", d);

	return 0;
}