138062025-01-08 19:28:44horkaFasor (40)cpp17Accepted 40/4079ms2744 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,k; cin>>n>>k;
    int inf=1e6+10;
    vector<int> v(n+2);
    for(int i=1; i<=n; i++)
        cin>>v[i];
    v[0]=v[n+1]=inf;
    vector<int> el(n+1),kov(n+1);
    stack<int> s;
    s.push(0);
    for(int i=1; i<=n; i++)
    {
        while(v[i]>=v[s.top()]) s.pop();
        el[i]=s.top();
        s.push(i);
    }
    while(!s.empty()) s.pop();
    s.push(n+1);
    for(int i=n; i>0; i--)
    {
        while(v[i]>=v[s.top()]) s.pop();
        kov[i]=s.top();
        s.push(i);
    }
    for(int i=1; i<=n; i++)
    {
        bool jo=1;
        if(el[i] && el[i]>=i-k) jo=0;
        if(kov[i]<=n && kov[i]<=i+k) jo=0;
        if(jo)
        {
            cout<<i<<"\n";
            return 0;
        }
    }
    cout<<"-1\n";
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms316 KiB
2Accepted0/04ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/22ms316 KiB
9Accepted2/24ms436 KiB
10Accepted2/24ms316 KiB
11Accepted2/24ms388 KiB
12Accepted2/23ms316 KiB
13Accepted2/237ms1572 KiB
14Accepted2/235ms1568 KiB
15Accepted2/257ms2736 KiB
16Accepted2/268ms2728 KiB
17Accepted2/272ms2620 KiB
18Accepted2/274ms2612 KiB
19Accepted2/274ms2716 KiB
20Accepted2/221ms1572 KiB
21Accepted2/257ms2732 KiB
22Accepted2/279ms2744 KiB