PÍSEMNÍ ČÁST
Úloha mala název Burza. Ráno dostanou burzoví makléři seznam pokynů od klientů, ktoré akce mají prodat a ktoré koupit. Na základě těchto pokynů mají pro každý typ cenného papíru (t.j. každý ISIN) určit kurs (cenu této akce) pro tento den, za kterou se zobchoduje co nejvíc akcí.
VSTUP:
Textový soubor s pokyny. 1 řádek představuje 1 pokyn a obsahuje:
ID makléře - 10 znaků
ID klienta - 10 znaků
ISIN (ID cenného papíru) - 12 znaků
název cenného papíru - 20 znaků
typ pokynu - 1 znak, buď N (klient chce této akce koupit) nebo P (prodat)
limitní cena - pozor, s přesností na haléře - je to cena za ktorou je klient akci ještě ochoten prodat (nebo koupit - záleží na N/P)
počet akcí - celé čislo, Pascalovský longint, t.j. 4 byty
ÚLOHA:
Pro každý typ akce (t.j. pro každý ISIN) najít kurs, t.j. cenu, při které sa zobchoduje co nejvíc akcí. Počet zobchodovaných akcí (pro danou cenu a daný ISIN) je minimum z počtu akcí, které jsou lidi za danou cenu ochotni koupit, a počtu akcí, které jsou lidi za danou cenu ochotni prodat. Ak je ideálních kursů víc, t.j. interval, za výsledek se bere střed tohoto intervalu.
VÝSTUP:
Zase textový soubor, 1 řádek je pro jeden ISIN a má formát:
ISIN
název cenného papíru
kurs
počet akcí které se za tu cenu zobchodují (pro tento ISIN)
Výstup nemusí být utříděn - na pořadí řádků nezáleží.
OMEZENÍ:
počet ISINů <= 3 000
počet pokynů <= 100 000 000
počet makléřů <= 10 000
počet klientů <= 10 000 000
maximální kurs (maximální ideální cena) = 43 000.00 Kč
minimální kurs (minimální ideální cena) = 0.01 Kč
velikost RAM = 1 MB
velikost disku: neomezená, ale zase neplýtvat
PŘEDPOKLADY:
1 znak = 1 byte
NEDĚLAT: (pozor, fakt nedělat - vyhazuje se za to)
vytvářet moc souborů (moc je asi cokoliv nad 10)
vyhledávat v souborech nebo opakované čtení souboru (zase asi tak do 10 čtení je ještě OK)
přímý přístup (používat disk jako RAM)