175342025-07-18 11:49:35algoproFasor (40)pypy3Wrong answer 4/40105ms48116 KiB
# UUID: 99b9b4a2-a4f7-45b3-bc60-8a0b729c2bec
from collections import deque
import sys

input = sys.stdin.readline

n_k = input().split()
n = int(n_k[0])
k = int(n_k[1])

magassagok = list(map(int, input().split()))

# A deque-ben tároljuk a látómezőn belüli indexeket csökkenő magassági sorrendben
q = deque()

for i in range(n):
    # Távolítsuk el a látótávolságon kívüli fákat
    while q and i - q[0] > k:
        q.popleft()

    # Töröljük ki a nálunk alacsonyabb vagy egyenlő fákat a végéről
    while q and magassagok[q[-1]] <= magassagok[i]:
        q.pop()

    # Ha nincs magasabb fa látótávolságon belül → boldog
    if not q:
        print(i + 1)  # +1 mert a feladat szerint 1-től indexelünk
        sys.exit(0)

    # Hozzáadjuk ezt a fát a deque végére
    q.append(i)

# Ha egyik fa sem jó
print(-1)
SubtaskSumTestVerdictTimeMemory
base4/40
1Wrong answer0/054ms21544 KiB
2Wrong answer0/059ms21688 KiB
3Wrong answer0/248ms21484 KiB
4Wrong answer0/248ms21476 KiB
5Accepted2/254ms21372 KiB
6Wrong answer0/257ms21412 KiB
7Wrong answer0/248ms21476 KiB
8Wrong answer0/252ms21692 KiB
9Accepted2/252ms21748 KiB
10Wrong answer0/259ms21752 KiB
11Wrong answer0/257ms21720 KiB
12Wrong answer0/250ms21688 KiB
13Wrong answer0/283ms35580 KiB
14Wrong answer0/270ms34856 KiB
15Wrong answer0/290ms45516 KiB
16Wrong answer0/2101ms46288 KiB
17Wrong answer0/293ms48056 KiB
18Wrong answer0/2105ms48116 KiB
19Wrong answer0/292ms47980 KiB
20Wrong answer0/279ms33748 KiB
21Wrong answer0/289ms45484 KiB
22Wrong answer0/2104ms48080 KiB