175622025-07-19 22:08:34sarminFasor (40)cpp17Elfogadva 40/4045ms17676 KiB
#include <bits/stdc++.h>
using namespace std;

const int K = 18;
vector<int> lg;

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n, k; cin >> n >> k;
    vector<int> a(n); lg.resize(n+1);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    lg[1] = 0;
    for (int i = 2; i <= n; i++) {
        lg[i] = lg[i/2] + 1;
    }

    // RMQ
    vector<vector<int>> st(K+1, vector<int>(n+1));
    for (int i = 0; i < n; i++) st[0][i] = a[i];
    for (int i = 1; i <= K; i++) {
        for (int j = 0; j + (1 << i) <= n; j++) {
            st[i][j] = max(st[i-1][j], st[i-1][j + (1 << (i - 1))]);
        }
    }

    for (int i = 0; i < n; i++) {
        int l = max(0, i-k), r = min(n-1, i+k);
        int j = lg[r - l + 1];
        if (max(st[j][l], st[j][r - (1 << j) + 1]) <= a[i]) {
            cout << i+1 << "\n"; return 0;
        }
    }
    cout << "-1\n";
	
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms1272 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms576 KiB
9Elfogadva2/23ms1076 KiB
10Elfogadva2/23ms1076 KiB
11Elfogadva2/23ms1076 KiB
12Elfogadva2/22ms1076 KiB
13Elfogadva2/223ms8896 KiB
14Elfogadva2/221ms8888 KiB
15Elfogadva2/237ms17628 KiB
16Elfogadva2/239ms17616 KiB
17Elfogadva2/241ms17620 KiB
18Elfogadva2/241ms17620 KiB
19Elfogadva2/245ms17612 KiB
20Elfogadva2/218ms9012 KiB
21Elfogadva2/241ms17620 KiB
22Elfogadva2/241ms17676 KiB