本文主要是介绍Mind Control CodeForces - 1291C(贪心),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
You and your n−1 friends have found an array of integers a1,a2,…,an. You have decided to share it in the following way: All n of you stand in a line in a particular order. Each minute, the person at the front of the line chooses either the first or the last element of the array, removes it, and keeps it for himself. He then gets out of line, and the next person in line continues the process.
You are standing in the m-th position in the line. Before the process starts, you may choose up to k different people in the line, and persuade them to always take either the first or the last element in the array on their turn (for each person his own choice, not necessarily equal for all people), no matter what the elements themselves are. Once the process starts, you cannot persuade any more people, and you cannot change the choices for the people you already persuaded.
Suppose that you’re doing your choices optimally. What is the greatest integer x such that, no matter what are the choices of the friends you didn’t choose to control, the element you will take from the array will be greater than or equal to x?
Please note that the friends you don’t control may do their choice arbitrarily, and they will not necessarily take the biggest element available.
Input
The input consists of multiple test cases. The first line contains a single integer t (1≤t≤1000) — the number of test cases. The description of the test cases follows.
The first line of each test case contains three space-separated integers n, m and k (1≤m≤n≤3500, 0≤k≤n−1) — the number of elements in the array, your position in line and the number of people whose choices you can fix.
The second line of each test case contains n positive integers a1,a2,…,an (1≤ai≤109) — elements of the array.
It is guaranteed that the sum of n over all test cases does not exceed 3500.
Output
For each test case, print the largest integer x such that you can guarantee to obtain at least x.
Example
Input
4
6 4 2
2 9 2 3 8 5
4 4 1
2 13 60 4
4 1 3
1 2 2 1
2 2 0
1 2
Output
8
4
1
1
Note
In the first test case, an optimal strategy is to force the first person to take the last element and the second person to take the first element.
the first person will take the last element (5) because he or she was forced by you to take the last element. After this turn the remaining array will be [2,9,2,3,8];
the second person will take the first element (2) because he or she was forced by you to take the first element. After this turn the remaining array will be [9,2,3,8];
if the third person will choose to take the first element (9), at your turn the remaining array will be [2,3,8] and you will take 8 (the last element);
if the third person will choose to take the last element (8), at your turn the remaining array will be [9,2,3] and you will take 9 (the first element).
Thus, this strategy guarantees to end up with at least 8. We can prove that there is no strategy that guarantees to end up with at least 9. Hence, the answer is 8.
In the second test case, an optimal strategy is to force the first person to take the first element. Then, in the worst case, both the second and the third person will take the first element: you will end up with 4.
Sponsor
题意:
n个数字,每个人可以选最左边或者最右边的数走。
你是第m个选。
你可以指定至多k个人,要求他们选哪边。
剩下的人选择是任意的。
询问你所能得到最大值的最小值。
思路:
首先一定是选前k个人,因为方法是一开始就要指定好的,要是一开始任意选完了,你再指定就不对了。
于是可以枚举i个人指定选前面,k-i个人指定选后面。对于非指定的也可以这样枚举。
还需要理解此处的最大值的最小值,意思是通过任意选择部分意在让你取尽可能小,但是你可以通过自己的选择和指定k个人使你的选择尽可能大。
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;typedef long long ll;int a[4000];
int n,m,k;int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d%d",&n,&m,&k);for(int i = 1;i <= n;i++)scanf("%d",&a[i]);int m1 = max(0,m - k - 1),m2 = min(m - 1,k);int ans = 0,ans2 = 0;for(int i = 0;i <= m2;i++){ans2 = 1e9;for(int j = 0;j <= m1;j++){int l = i + j + 1,r = n - (m2 - i + m1 - j);ans2 = min(ans2,max(a[l],a[r]));}ans = max(ans,ans2);}printf("%d\n",ans);}return 0;
}
这篇关于Mind Control CodeForces - 1291C(贪心)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!