1291C - Mind Control - CodeForces Solution


brute force data structures greedy math *1600

Please click on ads to support us..

C++ Code:

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

void solve(){
	int n, m, k;
	cin>>n>>m>>k;
	k = min(k, m-1);
	int res = 0;
	vector<int> a(n+2), v(m+1);
	for(int i = 1; i <= n; ++i){
		cin>>a[i];
	}
	
	for(int i = 1; i <= m; ++i){
		v[i] = max(a[i], a[n - m + i]);
		//cout<<v[i]<<' ';
		//cout<<i<<' '<<n - m + i<<endl;
	}
	
	//cout<<endl;

	vector<vector<int> > b(m+1, vector<int>(m+1));
	for(int i = 1; i <= m; ++i){
		int cur_min = INT_MAX;
		for(int j = i; j <= m; ++j){
			cur_min = min(cur_min, v[j]);
			b[i][j] = cur_min;
			//cout<<cur_min<<' ';
		}
		//cout<<endl;
	}
	
	for(int i = 0; i <= k+1; ++i){
		for(int j = 1; j <= i; ++j){
			res = max(res, b[j][m - i + j]);
			//cout<<j<<' '<<m-i +j<<endl;
		}
		//cout<<endl;
	}
	//*/
	cout<<res<<'\n';
	return;
}

int main() {
	int t; cin>>t;
	while(t--)solve();
	return 0;
}


Comments

Submit
0 Comments
More Questions

1384A - Common Prefixes
371A - K-Periodic Array
1542A - Odd Set
1567B - MEXor Mixup
669A - Little Artem and Presents
691B - s-palindrome
851A - Arpa and a research in Mexican wave
811A - Vladik and Courtesy
1006B - Polycarp's Practice
1422A - Fence
21D - Traveling Graph
1559B - Mocha and Red and Blue
1579C - Ticks
268B - Buttons
898A - Rounding
1372B - Omkar and Last Class of Math
1025D - Recovering BST
439A - Devu the Singer and Churu the Joker
1323A - Even Subset Sum Problem
1095A - Repeating Cipher
630F - Selection of Personnel
630K - Indivisibility
20B - Equation
600B - Queries about less or equal elements
1015A - Points in Segments
1593B - Make it Divisible by 25
680C - Bear and Prime 100
1300A - Non-zero
1475E - Advertising Agency
1345B - Card Constructions