思路
- 数组开大
- 注意细节处理
代码
#include<cstdio>
#include<algorithm>
using namespace std;
int a[100005], i, j, n;
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a + n);
int min = a[0], max = a[n - 1];
double mid = 0.0;
if (n % 2 != 0)
printf("%d %d %d\n", max, a[n / 2], min);
else
{
if ((a[n / 2] + a[n / 2 - 1]) % 2 == 0 || a[n / 2] + a[n / 2 - 1] == 0)
printf("%d %d %d\n", max, (a[n / 2] + a[n / 2 - 1]) / 2, min);
else
{
mid = ((double)(a[n / 2] + a[n / 2 - 1])) / 2;
printf("%d %.1lf %d\n", max, mid, min);
}
}
return 0;
}