176762025-09-13 09:28:37TakacsAndrasFasor (40)cpp17Elfogadva 40/4085ms2764 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> st;
int n,k;
int qr(int l, int r) {
    l += n;
    r += n;
    int rt = st[l];
    while (l && r && l <= r) {
        if (l % 2 == 1) rt = max(rt,st[l++]);
        if (r % 2 == 0) rt = max(rt,st[r--]);
        l /= 2;
        r /= 2;
    }
    return rt;
}
int main() {
    cin >> n >> k;
    vector<int> a(n);
    st.resize(2*n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        st[i+n] = a[i];
    }
    for (int i = n-1; i >= 1; i--) st[i] = max(st[i*2],st[i*2+1]);
    for (int i = 0; i < n; i++) {
        int q = qr(max(0,i-k),min(n-1,i+k));
        if (q <= a[i]) {
            cout << i+1 << '\n';
            return 0;
        }
    }
    cout << "-1\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms508 KiB
2Elfogadva0/04ms512 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/22ms500 KiB
9Elfogadva2/24ms316 KiB
10Elfogadva2/24ms316 KiB
11Elfogadva2/24ms468 KiB
12Elfogadva2/23ms316 KiB
13Elfogadva2/248ms1588 KiB
14Elfogadva2/241ms1592 KiB
15Elfogadva2/267ms2764 KiB
16Elfogadva2/274ms2612 KiB
17Elfogadva2/281ms2764 KiB
18Elfogadva2/282ms2760 KiB
19Elfogadva2/285ms2612 KiB
20Elfogadva2/228ms1584 KiB
21Elfogadva2/268ms2612 KiB
22Elfogadva2/279ms2612 KiB