Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // D school 19-20 100(Accepted) http://contest.uni-smr.ac.ru/pix/190921/contest-13210-ru.pdf
- # include <iostream>
- # include <vector>
- using namespace std;
- int main(){
- long long n;
- long long k;
- cin >> n >> k;
- long long left = 0;
- long long right = 1000000000;
- vector <long long> m;
- m.resize(n);
- for(long long i = 0; i < n; i++){
- cin >> m[i];
- }
- long long b_cur = 0;
- bool is_good = true;
- for (long long i = 0; i <= n; i++){
- if (i != n){
- if (m[i] > left){
- b_cur++;
- }
- else{
- b_cur = 0;
- }
- }
- if (b_cur >= k){
- is_good = false;
- break;
- }
- }
- if (is_good){
- cout << 0;
- }
- else {
- while ((right - left) > 1){
- long long middle = (right + left) / 2;
- b_cur = 0;
- is_good = true;
- for(long long i = 0; i <= n; i++){
- if (i != n){
- if (m[i] > middle){
- b_cur++;
- }
- else {
- b_cur = 0;
- }
- }
- if (b_cur >= k){
- is_good = false;
- break;
- }
- }
- if (!is_good){
- left = middle;
- }
- else {
- right = middle;
- }
- }
- cout << right;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement