V tejto nezvyčajnej a neistej dobe si Andrej založil nový biznis — obchoduje s RAMkou na spotovom trhu. Kvôli KSP1 sú však dnes ceny RAMiek veľmi nepredvídateľné… ba čo viac, už aj kapacity modulov.
Obchodníci totiž začali kapacitu udávať v nových jednotkách s cieľom zmiasť konkurenciu a teraz nevieme, či modul s kapacitou 16 mega kilo mikro centi bajtov je výhodnejší ako rovnaký modul s kapacitou 8 kilo deka bajt mili deci bajtov.
Pomôžte Andrejovi zorientovať sa v jednotkách.
Vašou úlohou je premieňať nové jednotky na bajty. Jednotka sa skladá z neprázdnej postupnosti písmen reprezentujúcich prípony SI z nasledovnej množiny2:
| Názov | Skratka | Hodnota | Mocnina 10 |
|---|---|---|---|
| mega | M | $1\,000\,000$ | $10^6$ |
| kilo | k | $1\,000$ | $10^3$ |
| hekto | h | $100$ | $10^2$ |
| bajt | B | $1$ | $10^0$ |
| centi | c | $0.01$ | $10^{-2}$ |
| milli | m | $0.001$ | $10^{-3}$ |
| mikro | u | $0.000\,001$ | $10^{-6}$ |
Hodnotu jednotky dostaneme tak, že spolu postupne násobíme a delíme všetky prípony v jej zápise. Hodnotou prvej prípony sa výsledok vždy násobí. Takisto každá prípona, ktorá nie je menšia než predchádzajúca, násobí výsledok svojou hodnotou. Pokiaľ však ľubovoľnej prípone predchádzala prípona ostro väčšia, novou príponou sa namiesto násobenia delí.
Andrej vám poslal zopár príkladov pre lepšie pochopenie:
V prvom riadku je reťazec dĺžky $n$ $(1 \leq n \leq 10^6)$, ktorý pozostáva zo skratiek prípon.
Úloha má dve sady, za vyriešenie každej dostanete štyri body. V prvej sade platí, že $n \leq 10$ a žiadny medzivýsledok výpočtu ani celkový výsledok nie je menší než $1$ ani väčší než $10^5$.
Vypíšte jeden riadok a v ňom jedno celé číslo – výslednú hodnotu zápisu v bajtoch.
kB
1000
kilo je menšia prípona ako bajt, teda výsledok je $1\,000 \cdot 1 = 1\,000$.
khBcmu
1000000000000
Jednotky sú klesajúce, takže všetkými okrem prvej delime, teda výsledok je $1\,000 / 100 / 1 / 0.01 / 0.001 / 0.000\,001 = 1\,000\,000\,000\,000$
Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.
Trojsten, o.z.
FMFI UK, Mlynská dolina
842 48 Bratislava
Programátorská súťaž pre základoškolákov
Materiály a úlohy na výučbu programovania
Intenzívny programátorský zážitok v lete