CF 440 div2 B.Maximum of Maximums of Minimums
来源:互联网 发布:建站如何买域名和空间 编辑:程序博客网 时间:2024/06/09 17:16
You are given an array a1, a2, ..., an consisting ofn integers, and an integer k. You have to split the array into exactly k non-empty subsegments. You'll then compute the minimum integer on each subsegment, and take the maximum integer over thek obtained minimums. What is the maximum possible integer you can get?
Definitions of subsegment and array splitting are given in notes.
The first line contains two integers n andk (1 ≤ k ≤ n ≤ 105) — the size of the arraya and the number of subsegments you have to split the array to.
The second line contains n integers a1, a2, ..., an ( - 109 ≤ ai ≤ 109).
Print single integer — the maximum possible integer you can get if you split the array intok non-empty subsegments and take maximum of minimums on the subsegments.
5 21 2 3 4 5
5
5 1-4 -5 -3 -2 -1
-5
A subsegment [l, r] (l ≤ r) of arraya is the sequence al, al + 1, ..., ar.
Splitting of array a of n elements into k subsegments[l1, r1],[l2, r2], ...,[lk, rk] (l1 = 1,rk = n,li = ri - 1 + 1 for alli > 1) is k sequences(al1, ..., ar1), ..., (alk, ..., ark).
In the first example you should split the array into subsegments [1, 4] and [5, 5] that results in sequences (1, 2, 3, 4) and (5). The minimums are min(1, 2, 3, 4) = 1 and min(5) = 5. The resulting maximum ismax(1, 5) = 5. It is obvious that you can't reach greater result.
In the second example the only option you have is to split the array into one subsegment[1, 5], that results in one sequence ( - 4, - 5, - 3, - 2, - 1). The only minimum is min( - 4, - 5, - 3, - 2, - 1) = - 5. The resulting maximum is - 5.
题意:给出n个数,分成k段,每一段取最小值,再从k个最小值中取最大值,问能取到的最大数是多少。
思路:如果能分成3段以上,可以将n个最大数的最大值单独划分成一段,最后答案就是最大值,如果只能分成一段,肯定输出的就是最小值,如果只能分成两段,如果全局最大值在两端,那么能把最大值单独划分成一段,直接输出最大值,如果最大值不在两端,每段的最小值肯定取不到最大值,那么答案肯定取不到最大值,能最到到比较大的数最好的方案就是把端点单独划分,哪个端点大输出哪个.
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <queue>#include <algorithm>#define inf 0x3f3f3f3fusing namespace std;int s[110000];int main(){ios::sync_with_stdio(false);int Max, Min;int n, k;int i;cin>>n>>k;Max = -inf;Min = inf;for(i = 0;i < n;i++){cin>>s[i];Max = max(s[i],Max);Min = min(s[i],Min);}if(k == 1)cout<<Min<<endl;else if(k == 2){if(Max == s[0] || Max == s[n-1])cout<<Max<<endl;else{Max = max(s[0],s[n-1]);cout<<Max<<endl;}}elsecout<<Max<<endl;return 0;}
- CF 440 div2 B.Maximum of Maximums of Minimums
- Codeforces Round #440 div2 B Maximum of Maximums of Minimums
- B. Maximum of Maximums of Minimums --codeforces
- #440 Div.2 B. Maximum of Maximums of Minimums 水
- Codeforces Round #440 B. Maximum of Maximums of Minimums
- Codeforces Round #440 B. Maximum of Maximums of Minimums-【思维】
- Maximum of Maximums of Minimums
- Codeforces 872 B Maximum of Maximums of Minimums
- CodeForces 872B Maximum of Maximums of Minimums
- 【Codeforces Round #440 (Div. 2) B】Maximum of Maximums of Minimums
- Codeforces Round #440 (Div. 2)B. Maximum of Maximums of Minimums
- Codeforces Round #440 (Div. 2) B. Maximum of Maximums of Minimums
- codeforce Maximum of Maximums of Minimums(区间划分 求区间最小值最大值问题)
- Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)B. Maximum of Maximums of
- CF 277 Div2 E LIS of Sequence
- cf 131 DIV2 B
- CF 173(div2) B
- CF 131 div2 B
- OC中导航条与UIScrollView冲突解决方法
- CentOS修改主机名
- 有两列数,Matlab让第二列数随着第一列的升序排列(sortrows)
- 学习多线程你应该知道这些
- 【LeetCode】C# 83、Remove Duplicates from Sorted List
- CF 440 div2 B.Maximum of Maximums of Minimums
- 大家好!给大家介绍一下,这是我们的供应链风险评估解决方案@东华国际
- vue.js 添加 fastclick的支持
- Vue.js入门(一)——创建第一个vue.js项目
- 课堂练习6(第四周)
- 85、java的IO操作-转换流的简化写法
- ln修改cdh日志目录
- linux离线安装mysql
- 一些单链表的面试题