206262026-01-08 09:30:36DhaneHaneFasor (40)cpp17Elfogadva 40/4079ms2732 KiB
#include <iostream>
#include <vector>
#include <cmath>
#include <deque>
using namespace std;

int main() {
    int N, K;
    cin >> N >> K;
    vector<int> H(N+1);
    for(int i=1; i<=N; i++) cin >> H[i];
    
    vector<int> max_l(N+1, 0);
    deque<int> dq;
    for(int i=1; i<=N; i++) {
        while(!dq.empty() && dq.front() < i - K) dq.pop_front();
        if(!dq.empty()) max_l[i] = H[dq.front()];
        while(!dq.empty() && H[dq.back()] <= H[i]) dq.pop_back();
        dq.push_back(i);
    }
    
    vector<int> max_r(N+1, 0);
    dq.clear();
    for(int i=N; i>=1; i--) {
        while(!dq.empty() && dq.front() > i + K) dq.pop_front();
        if(!dq.empty()) max_r[i] = H[dq.front()];
        while(!dq.empty() && H[dq.back()] <= H[i]) dq.pop_back();
        dq.push_back(i);
    }
    
    for(int i=1; i<=N; i++) {
        if(max(max_l[i], max_r[i]) <= H[i]) {
            cout << i << endl;
            return 0;
        }
    }
    cout << -1 << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms512 KiB
8Elfogadva2/22ms508 KiB
9Elfogadva2/24ms440 KiB
10Elfogadva2/24ms316 KiB
11Elfogadva2/24ms440 KiB
12Elfogadva2/23ms316 KiB
13Elfogadva2/237ms1592 KiB
14Elfogadva2/235ms1332 KiB
15Elfogadva2/264ms2728 KiB
16Elfogadva2/268ms2724 KiB
17Elfogadva2/274ms2612 KiB
18Elfogadva2/275ms2604 KiB
19Elfogadva2/272ms2732 KiB
20Elfogadva2/221ms1568 KiB
21Elfogadva2/257ms2620 KiB
22Elfogadva2/279ms2612 KiB