15812022-11-28 10:14:08zsebiFasor (40)cpp11Accepted 40/40108ms19820 KiB
// fasor.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <queue>
#include <algorithm>

#define ll long long
using namespace std;

ll n, i;
vector<ll>st, x;
void build(ll p, ll l, ll r)
{
    if (l == r)
    {
        st[p] = x[l];
        return;
    }
    ll k = (l + r) / 2;
    build(2 * p, l, k);
    build(2 * p + 1, k + 1, r);
    st[p] = max(st[2 * p], st[2 * p + 1]);
}
ll leker(ll p, ll l, ll r, ll a, ll b)
{
    if (a <= l && r <= b)
    {
        return st[p];
    }
    if (r < a || b < l)return 0;
    ll k = (l + r) / 2;
   return max(leker(2 * p, l, k, a, b), leker(2 * p + 1, k + 1, r, a, b));
}
ll k;
int main()
{
    cin >> n >> k;
    x.resize(n + 1);
    st.resize(4 * n + 1);
    for (int i = 1; i <= n; ++i)
        cin >> x[i];
    build(1, 1, n);
    ll maxi = 0;
    //for (auto& e : st)cout << e << " ";
    //cout << "\n";
    for (int i = 1; i <= k; ++i)
    {
        maxi = max(maxi, x[i]);
        if (leker(1, 1, n, i, i + k) <= x[i]&& maxi <= x[i])
        {
            cout << i;
            return 0;
        }
    }
    for (int i = k + 1; i <= n; ++i)
    {
        if (leker(1, 1, n, i - k, i + k) <= x[i])
        {
            cout << i;
            return 0;
        }
    }
    cout << "-1";
    return  0;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/03ms1872 KiB
2Accepted0/04ms2828 KiB
3Accepted2/22ms2168 KiB
4Accepted2/22ms2376 KiB
5Accepted2/22ms2580 KiB
6Accepted2/22ms2780 KiB
7Accepted2/22ms3020 KiB
8Accepted2/23ms3392 KiB
9Accepted2/24ms4188 KiB
10Accepted2/26ms4264 KiB
11Accepted2/26ms4264 KiB
12Accepted2/24ms4264 KiB
13Accepted2/264ms11412 KiB
14Accepted2/259ms11592 KiB
15Accepted2/286ms19468 KiB
16Accepted2/287ms19596 KiB
17Accepted2/292ms19604 KiB
18Accepted2/297ms19604 KiB
19Accepted2/2108ms19728 KiB
20Accepted2/243ms11876 KiB
21Accepted2/290ms19820 KiB
22Accepted2/293ms19800 KiB