#include <bits/stdc++.h>
using namespace std;

void MaxMin(int a[], int l, int r, int &maxe, int &mine){
int mid;
if(l == r){ //只有一个元素
maxe = a[l];
mine = a[l];
}
else if(l == r -1){ //只有两个元素
maxe = max(a[l], a[r]);
mine = min(a[l], a[r]);
}
else{ //有两个以上元素
mid = (l + r) / 2;
int lmaxe, lmine;
MaxMin(a, l, mid, lmaxe, lmine);
int rmaxe, rmine;
MaxMin(a, mid + 1, r, rmaxe, rmine);
maxe = max(lmaxe, rmaxe);
mine = min(lmine, rmine);
}
}

int main(){
int a[] = {4, 3, 1, 2, 5};
int n = sizeof(a) / sizeof(a[0]);
int maxe, mine;
MaxMin(a, 0, n -1, maxe, mine);
cout << "最大值为:" << maxe << endl;
cout << "最小值为:" << mine << endl;
return 0;
}