#include<iostream>
#include<stdio.h>
using namespace std;
int max(int a,int b){
return a>b?a:b;
}
int min(int a,int b){
return a<b?a:b;
}
void MergeSearch(int *a,int l,int r)
{
if (l==r) return;
int m=(l+r)/2;
MergeSearch(a,l,m);
MergeSearch(a,m+1,r);
if (l-r==1){
a[l]=min(a[l],a[r]);
a[r]=max(a[l],a[r]);
}else {
a[l]=min(a[l],a[m+1]);
a[r]=max(a[m],a[r]);
}
}
int main()
{
int n,a[100100]={0};
cin>>n;
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
MergeSearch(a,1,n);
cout<<a[1]<<a[n];
}
分治法求最大最小值
最新推荐文章于 2024-01-16 11:13:03 发布