Maximum of Maximums of Minimums
题目链接:CodeForces - 872B题意, 给出一个长度为n的数组, 将其分为连续的k个子集, 为k个子集中最大的最小值是多少?(求出每个子集的最小值, 再求出k个最小值中的最大值);
当k==1时, 只有原序列, 输出最小值;
当k==2时, 输出a[0], a[n-1]中最大值;
当k>2时, 输出最大值;
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <queue>
#include <vector>
using namespace std;
const int maxn = 1e5+10;
const int inf=0x3f3f3f3f;
int a[maxn];
int main(){
int n, k, maxn=-inf, minn=inf;
scanf("%d%d", &n, &k);
for(int i=0; i<n; i++){
scanf("%d", &a[i]);
maxn=max(maxn, a[i]);
minn=min(minn, a[i]);
}
if(k==1) printf("%d\n", minn);
else if(k==2) printf("%d\n", max(a[0], a[n-1]));
else printf("%d\n", maxn);
return 0;
}