Zoznam úloh

2. Zázračné platenie

Kolo už skončilo. Môžeš si pozrieť vzorové riešenie.

Zygrov dlhoročný sen je navštíviť Švédsko. Dôkladne sa na to pripravuje: študuje históriu, učí sa jazyk[^1] a počúva škandinávske pesničky. Popri tom samozrejme pracuje (vo firme “Vysávače a špagety, s.r.o.”), aby si zarobil peniaze na výlet.

Práca je ale náročná, a tak raz večer zaspal nad poviedkami o Pipi Dlhej Pančuche a ocitol sa v zázračnej švédskej dedinke s ešte zázračnejším spôsobom platenia.

Platenie sa líšilo tým, že ak máte za zmrzlinu zaplatiť napríklad $$512$$ eur, tak najprv podáte pokladníkovi $$5$$ eur, potom $$1$$ euro a nakoniec $$2$$ eurá (pozor na poradie!). Zygro bol samozrejme veľmi nadšený. Veď na kúpenie zmrzliny mu stačilo iba $$8$$ eur, čím ušetril $$504$$ eur. Celú noc preto behal po dedinke a zisťoval ceny jednotlivých výrobkov, aby zrátal, koľko peňazí dokáže ušetriť. Aj vo svojom sne je však veľmi unavený, a tak už nezvláda ani obyčajné odčítavanie. Keby tak na to mal program…

Pomôžete mu?

Úloha

Máte dané celé nezáporné číslo $$n$$ – cenu výrobku. Vašou úlohou je zistiť, koľko peňazí Zygro ušetrí, ak za výrobok zaplatí vyššie popísaným spôsobom.

Formát vstupu

V prvom riadku vstupu je jediné číslo $$n$$ ($$0 \leq n \leq 10^{18}$$) udávajúce cenu. Všimnite si, že $$n$$ sa nezmestí do bežnej (32-bitovej) celočíselnej premennej. Pokiaľ programujete v Pascale, odporúčame vám použiť typ int64, v C++ typ long long.

Formát výstupu

Vypíšte jeden riadok, na ktorom bude jediné číslo: množstvo peňazí, ktoré Zygro ušetrí.

Príklady

Input:

512

Output:

504

$$512 - (5 + 1 + 2) = 512 - 8 = 504$$

Input:

1000

Output:

999

$$1000 - (1 + 0 + 0 + 0) = 1000 - 1 = 999$$


  1. Vedeli ste, že švédčina má 2 stredné rody?
Pre odovzdávanie sa musíš prihlásiť.
Trojsten

Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.

Kontakt
Ďalšie projekty