5752 2023. 09. 16 12:44:40 Ablablabla Fasor (40) cpp17 Elfogadva 40/40 93ms 19988 KiB
#include <bits/stdc++.h>

using namespace std;

struct segTree{
    int meret = 1;
    vector<int> fa;

    void letrehoz(int n){
        while(meret < n){
            meret *= 2;
        }

        fa.assign(2 * meret - 1, 0);
    }

    int epit(int a, int b, int ind){
        if(a == b){
            return fa[ind];
        }

        int k = (a + b) / 2;

        return fa[ind] = max(epit(a, k, 2 * ind + 1), epit(k + 1, b, 2 * ind + 2));
    }

    int keres(int a, int b, int ind, int kezd, int veg){
        if(b < kezd || veg < a){
            return 0;
        } else if(kezd <= a && b <= veg){
            return fa[ind];
        }

        int k = (a + b) / 2;
        return max(keres(a, k, 2 * ind + 1, kezd, veg), keres(k + 1, b, 2 * ind + 2, kezd, veg));
    }
};

int main()
{
    int n, k;
    cin >> n >> k;

    segTree fa;
    fa.letrehoz(n);
    vector<int> eredeti(n, 0);

    for(int i = 0; i < n; i++){
        cin >> fa.fa[fa.meret - 1 + i];
        eredeti[i] = fa.fa[fa.meret - 1 + i];
    }

    fa.epit(0, fa.meret - 1, 0);

    for(int i = 0; i < n; i++){
        int maxi = fa.keres(0, fa.meret - 1, 0, max(0, i - k), min(i + k, n));

        if(maxi == eredeti[i]){
            cout << i + 1 << "\n";
            return 0;
        }
    }

    cout << "-1\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1944 KiB
2 Elfogadva 0/0 6ms 2376 KiB
3 Elfogadva 2/2 3ms 2328 KiB
4 Elfogadva 2/2 3ms 2536 KiB
5 Elfogadva 2/2 2ms 2576 KiB
6 Elfogadva 2/2 3ms 2812 KiB
7 Elfogadva 2/2 3ms 2936 KiB
8 Elfogadva 2/2 3ms 3300 KiB
9 Elfogadva 2/2 6ms 3796 KiB
10 Elfogadva 2/2 6ms 3840 KiB
11 Elfogadva 2/2 6ms 3780 KiB
12 Elfogadva 2/2 4ms 4104 KiB
13 Elfogadva 2/2 52ms 7352 KiB
14 Elfogadva 2/2 46ms 7960 KiB
15 Elfogadva 2/2 68ms 11632 KiB
16 Elfogadva 2/2 76ms 12852 KiB
17 Elfogadva 2/2 79ms 14432 KiB
18 Elfogadva 2/2 86ms 15904 KiB
19 Elfogadva 2/2 93ms 17288 KiB
20 Elfogadva 2/2 30ms 15020 KiB
21 Elfogadva 2/2 70ms 18660 KiB
22 Elfogadva 2/2 79ms 19988 KiB