232092026-01-16 17:19:34999Fasor (40)cpp17Accepted 40/4087ms2028 KiB
// Source: https://usaco.guide/general/io

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

int main() {
    int n,k;cin>>n>>k;
    deque<pair<int,int>> s;
    vector<int> v(n),marked(n);
    for(int i = 0;i<n;i++){
        int a;cin>>a;
        v[i]=a;
        while(!s.empty()&&s.front().first<=a){
            s.pop_front();
        }
        while(!s.empty()&&abs(i-s.back().second)>k){
            s.pop_back();
        }
        if(s.empty()||!s.empty()&&s.back().first<=a){
            marked[i]++;
        }
        s.push_front({v[i],i});
    }
    reverse(v.begin(),v.end());
    while(!s.empty())s.pop_front();
    for(int i = 0;i<n;i++){
        while(!s.empty()&&s.front().first<=v[i]){
            s.pop_front();
        }
        while(!s.empty()&&abs(i-s.back().second)>k){
            s.pop_back();
        }
        if(s.empty()||!s.empty()&&s.back().first<=v[i]){
            marked[n-i-1]++;
        }
        s.push_front({v[i],i});
    }
    for(int i = 0;i<n;i++){
        if(marked[i]==2){
            cout<<i+1;
            return 0;
        }
    }
    cout<<-1;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms508 KiB
2Accepted0/04ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms512 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/22ms316 KiB
9Accepted2/24ms484 KiB
10Accepted2/24ms508 KiB
11Accepted2/26ms508 KiB
12Accepted2/24ms512 KiB
13Accepted2/243ms1192 KiB
14Accepted2/239ms1196 KiB
15Accepted2/270ms1844 KiB
16Accepted2/279ms1976 KiB
17Accepted2/285ms1844 KiB
18Accepted2/286ms2028 KiB
19Accepted2/287ms1844 KiB
20Accepted2/228ms1076 KiB
21Accepted2/271ms1844 KiB
22Accepted2/283ms1980 KiB