Programozó versenyek

ILBPM9987L Informatikai versenyfeladatok, 2023. ősz

2023. november 17. 20:00 – 2024. január 31. 23:59

A csiga

Egy csiga egy hat méter mély kút aljáról fel szeretne kapaszkodni a kút tetejére. Nappal 3 métert tud haladni felfelé, de éjszaka, alvás közben visszacsúszik 1 métert. A csiga fáradékonysági tényezője 10%, ami azt jelenti, hogy a csiga mindennap 0,1 × 3 = 0,3 méterrel kevesebbet tud mászni, mint az előző napon. (A fáradtság miatt vesztett távolság mindig az első napon megtett távolság 10%-a.) Melyik nap hagyja el a kutat a csiga, vagyis melyik lesz az első olyan nap, amikor a csiga magassága meghaladja a 6 métert? (Egy nap egy nappali és egy azt követő éjszakai periódusból áll.) Ahogy a következő táblázatból látható, a csiga a harmadik napon elhagyja a kutat:

Nap Kezdő magasság Mászott távolság Magasság a mászás után Magasság a visszacsúszás után
1 0 m 3 m 3 m 2 m
2 2 m 2,7 m 4,7 m 3,7 m
3 3,7 m 2,4 m 6,1 m

A feladatod ennek a problémának az általános megoldása. A probléma paramétereitől függően a csiga végül vagy elhagyja a kutat, vagy visszacsúszik a kút aljára. (Más szóval a csiga magassága előbb-utóbb vagy meghaladja a kút magasságát, vagy negatívvá válik.) Meg kell határoznod, melyik következik be előbb, és melyik napon történik ez az esemény.

A bemenet specifikációja

A bemenet egy vagy több tesztesetet tartalmaz, soronként egyet. Minden sor négy egész számból áll (H, U, D és F) egyetlen szóközzel elválasztva. Ha H = 0, az a bemenet végét jelenti; egyébként mind a négy szám 1 és 100 közé esik, beleértve a határokat is. H a kút magassága méterben, U az a távolság (méterben), amennyit a csiga az első nap mászik, D az a távolság (szintén méterben), amennyit a csiga éjszaka visszacsúszik, F pedig a fáradékonysági tényező százalékban kifejezve. A csiga sohasem mászik negatív távolságot. Ha a fáradékonysági tényező miatt a mászott magasság 0 alá csökkenne, akkor aznap nem mászik semennyit. Függetlenül attól, hogy a csiga mennyit mászott nappal, éjszaka mindig D métert csúszik vissza.

A kimenet specifikációja

Minden tesztesetre írj ki egy sort, amely megmondja, hogy a csiga sikeresen elhagyta-e a kutat (success), vagy visszacsúszott a kút aljára (failure), és hogy melyik napon dőlt el a sorsa. A kimenetet pontosan a példának megfelelően kell formázni.

Példa bemenet

  1. 6 3 1 10
  2. 10 2 1 50
  3. 50 5 3 14
  4. 50 6 4 1
  5. 50 6 3 1
  6. 1 1 1 1
  7. 0 0 0 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. success on day 3
  2. failure on day 4
  3. failure on day 7
  4. failure on day 68
  5. success on day 20
  6. failure on day 2
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.