123272024-12-12 13:11:37horichdominik2Hőségriadó (50 pont)python3Accepted 50/5087ms11652 KiB
# Hőségriadó
# ha egymás után K napon keresztül meghaladja az F fokot
# lefújják, ha L napon keresztül F fok alá került az átlaghőmérséklet.
# Ismerjük N napra az átlaghőmérsékleteket.
# 
# Készíts programot, amely megadja, hogy hányszor kellett elrendelni hőségriadót!
# A standard bemenet első sorában a napok száma (2N100 000) valamint a K, L és F
# értékek (1K,L10, -50F50) vannak.
napokSzama,beIdo,kiIdo,treshold = list(map(int, input().split()))
# A következő sorban az N nap átlaghőmérsékletei (-50Ai50) találhatók.
napok = list(map(int, input().split()))

beCounter = 0
kiCounter = 0
hosegNapok = 0

hosegRiado = False
hosegRiadoBef = False
for i in range(napokSzama):
    nap = napok[i]
    
    if(nap > treshold):
        kiCounter=0
        beCounter+=1
    elif(nap < treshold):
        beCounter=0
        kiCounter+=1
    elif(nap == treshold):
        beCounter=0
        kiCounter=0
    
    if(kiCounter >= kiIdo):
        hosegRiado = False
    
    if(beCounter >= beIdo):
        hosegRiado = True
    
    if(hosegRiado != hosegRiadoBef):
        hosegRiadoBef = hosegRiado
        if(hosegRiado):
            hosegNapok+=1
            
    # print({"nap": nap, "beCounter":beCounter, "kiCounter":kiCounter, "hosegRiado":hosegRiado, "hosegNapok":hosegNapok})



# A standard kimenet első és egyetlen sorába a hőségriadók számát kell írni!
print(hosegNapok)
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/016ms3116 KiB
2Accepted0/087ms11528 KiB
3Accepted2/216ms3140 KiB
4Accepted2/216ms3120 KiB
5Accepted2/216ms2920 KiB
6Accepted2/214ms3060 KiB
7Accepted2/214ms3056 KiB
8Accepted4/417ms3124 KiB
9Accepted4/445ms6588 KiB
10Accepted4/452ms7448 KiB
11Accepted4/461ms8552 KiB
12Accepted4/450ms7416 KiB
13Accepted4/471ms9972 KiB
14Accepted4/420ms3728 KiB
15Accepted4/482ms11528 KiB
16Accepted4/483ms11480 KiB
17Accepted4/482ms11652 KiB