175342025-07-18 11:49:35algoproFasor (40)pypy3Hibás válasz 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)
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/40
1Hibás válasz0/054ms21544 KiB
2Hibás válasz0/059ms21688 KiB
3Hibás válasz0/248ms21484 KiB
4Hibás válasz0/248ms21476 KiB
5Elfogadva2/254ms21372 KiB
6Hibás válasz0/257ms21412 KiB
7Hibás válasz0/248ms21476 KiB
8Hibás válasz0/252ms21692 KiB
9Elfogadva2/252ms21748 KiB
10Hibás válasz0/259ms21752 KiB
11Hibás válasz0/257ms21720 KiB
12Hibás válasz0/250ms21688 KiB
13Hibás válasz0/283ms35580 KiB
14Hibás válasz0/270ms34856 KiB
15Hibás válasz0/290ms45516 KiB
16Hibás válasz0/2101ms46288 KiB
17Hibás válasz0/293ms48056 KiB
18Hibás válasz0/2105ms48116 KiB
19Hibás válasz0/292ms47980 KiB
20Hibás válasz0/279ms33748 KiB
21Hibás válasz0/289ms45484 KiB
22Hibás válasz0/2104ms48080 KiB