Mp3PlayerHungarian

From CEOIWiki

Jump to: navigation, search

July 12-19
Košice, Slovakia
Task: mp3player
Language: Hungarian


[edit] MP3 lejátszó

Egy MP3-lejátszón billentyűzár működik, úgy, hogy lezár, ha T-nél több másodpercig nem nyomnak meg billentyűt. Ha lezárt állapotban megnyomnak egy tetszőleges billentyűt, annak hatása csak az, hogy feloldja a billentyűzárat.

Páldául, ha T = 5 és a billentyűzet lezárt állapotban van, akkor ha lenyomjuk az A billentyűt, várunk 3 másodpercet, aztán lenyomjuk a B billentyűt, majd várunk 5 másodpercet, aztán lenyomjuk a C billentyűt, várunk 6 másodpercet, és lenyomjuk a D billentyűt, akkor csak a B és a C váltja ki az eredeti funkciót.

A hangerőt a + és a - billentyűk szabályozzák, növelik, illetve csökkentik 1 egységgel. A hangerő 0 és Vmax közötti egész szám.

Maximális hangerőnél a + billentyű, 0 hangerőnél a - billentyű hatástalan.

Nem ismerjük sem a T, sem a kezdő V1 hangerő értéket. Ezeket kísérlettel szeretnénk meghatározni: N + vagy - billentyű lenyomása után leolvassuk a kijelzőről a V2 hangerőértéket.

[edit] Feladat

Írj olyan programot, amely a kísérleti adatokból meghatározza a legnagyobb T és a hozzá tartozó lehetséges V1 értéket!

[edit] Bemenet

A bemenet első sorában 3, szóközökkel elválasztott egész szám van: a billentyűleütések N száma, a Vmax maximális hangerő és a végén leolvasott V2 hangerő értéke (0 \leq V_2 \leq V_{max}). A következő N sor mindegyikének első karaktere a + vagy - karakter, majd tőle szóközzel elválasztva a Ci egész szám (0 \leq C_i \leq 2\cdot 10^9), ami a billentyű lenyomásának ideje másodpercben a kezdettől számítva. (azaz Ci < Ci + 1 minden 1 \leq i < N esetén).

[edit] Korlátok

2 \leq N \leq 100\,000 és 2 \leq V_{max} \leq 5\,000.

40 pont szerezhető, amikor N \leq 4\,000.

70 pont szerezhető, amikor N \cdot V_{max} \leq 400\,000.

[edit] Kimenet

Ha T akármilyen nagy lehet, akkor az "infinity" szót kell kiírni (idézőjelek nélkül), egyébként a T és a V1 értékét kell kiírni, egy szóközzel elválasztva!

A T, a V1 és a V2 értékre teljesülni kell, hogy ha a billentyűzet kezdetben zárolt és a hangerő értéke V1, majd végrehajtjuk a bemenetben megadott műveleteket, akkor a végén a hangerő V2 lesz. Ha több megoldás is van a legnagyobb T-re, akkor azt kell kiírni, ahol V1 a lehető legnagyobb.

(Megjegyezzük, hogy mindig van olyan T és V1, amelyek esetén a V2 végső hangerő elérhető: T = 0 és V1 = V2.)

[edit] Példák

input:

6 4 3
- 0
+ 8
+ 9
+ 13
- 19
- 24

output:

5 4

T = 5 esetén a billentyűk hatása: nyit, nyit, +, +, nyit, -.

Minden V_1\in\{2,3,4\} esetén V2 = 3 lesz. Ezért a kimenet a legnagyobb V1-et tartalmazza.

Ha T\geq 6, akkor az utolsó 2 billentyűlenyomás aktív lenne, ezért nem érhető el a V2 = 3.


input:

3 10 10
+ 1
+ 2
+ 47

output:

infinity

Ha V1 = 10 akkor minden T-re V2 = 10.