试题编号: 201903-1
试题名称: 小中大
时间限制: 1.0s
内存限制: 512.0MB
代码:
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 1e5;
int a[N];
int main()
{
int n;
while(cin >> n){
for(int i = 0; i < n; i++)
cin >> a[i];
int mina = min(a[0] , a[n-1]);
int maxa = max(a[0] , a[n-1]);
if(n % 2 == 1) {
printf("%d %d %d", maxa, a[n / 2], mina);
} else {
if((a[n / 2 - 1] + a[n / 2]) % 2 == 1)
printf("%d %.1lf %d", maxa, (double)((a[n / 2 - 1] + a[n / 2]) / 2.0), mina);
else
printf("%d %d %d", maxa, (a[n / 2 - 1] + a[n / 2]) / 2, mina);
}
}
return 0;
}
/*
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<string.h>
#include<iostream>
#include<iomanip>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
int main(){
int n ;
int number;
vector<int> vc;
while(cin >> n){
for(int i = 0 ; i < n; i++){
cin >> number;
vc.push_back(number);
}
int a = vc[0];
int b = vc[n - 1];
int maxnumber = max(a , b);
int minnumber = min(a , b);
int index = -1;
double midnumber = 0;
if(n % 2 == 0){
index = n / 2;
a = vc[index];
index = n / 2 - 1;
b = vc[index];
midnumber = (double)((a + b) / 2.0);
}else{
index = n / 2;
midnumber = vc[index];
}
int temp = int(midnumber);
cout << maxnumber << " ";
if(temp == midnumber){
cout << temp << " ";
}else{
printf("%.1lf ",midnumber);
}
cout << minnumber << endl;
vc.clear();
}
return 0;
}
*/