V staroveku žil úbohý sedliak Matej, ktorý na celom svete mal iba svoju ženu a niekoľko kráv rôznej kvality. Kvalita sa dala vyhodnotiť napríklad podľa počtu končatín, chuti mlieka alebo či je krava ešte nažive. Aj napriek tomu, že bol naozaj úbohý a nič nemal, každé ráno za ním prišiel vyberač daní a on mu musel zaplatiť. Suma na zaplatenie sa mala určovať ako najkvalitnejšia krava, ktorú sedliak vlastní plus jedna v dukátoch. Jediné Matejove šťastie bolo, že vyberač daní bol lenivý a kvalitu kontroloval od najhoršej kravy a prvú kvalitu, ktorú nenašiel povedal Matejovi aby zaplatil. Začal tým, že si popozeral mŕtve kravy, potom kravy, ktoré sa nevedeli hýbať, potom tie, ktoré mali iba jednu nohu a tak ďalej až kým nenašiel kravu nejakej kvality. Aby vedel Matej dane platiť, každý deň si musel jednu kravu vybrať, celý deň ju porcovať a nakoniec poslať ženu aby ju predala. Napadlo mu ale, že ak si správne vyberie poradie, v ktorom sa kráv bude zbavovať tak zaplatí menej v daniach.
Máme $n$ kráv kvality $k$, kde krava $i$ má kvalitu $k_i$. Každý deň príde vyberač daní, postupne zistí či je krava s kvalitou 0, kvalitou 1, 2, 3, 4 … a prvú kvalitu, ktorú nenájde, musí sedliak zaplatiť v dukátoch. Sedliak si potom vyberie jednu kravu, ktorej sa zbaví a celý deň ju bude porcovať. Sedliaka zaujíma, koľko najmenej peňazí musí zaplatiť, ak sa bude správne zbavovať svojich kráv.
Ak nemá žiadne kravy alebo kravy kvality 0, zjavne už nebude platiť dane. Predpokladajte tiež, že sedliak má vždy aspoň toľko peňazí aby dane zaplatil.
V prvom riadku vstupu je číslo $n$ ($1 \leq n \leq 2\,001$) udávajúce počet kráv, ktoré sedliak vlastní.
V druhom riadku je $n$ čísiel $k$, kde $k_i$ je kvalita kravy $i$.
| Sada | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| $1 \leq n \leq$ | $2\,001$ | $2\,001$ | $1\,001$ | $2\,001$ |
| $0 \leq k \leq$ | $2$ | $10$ | $1000$ | $10^9$ |
Vypíš jeden riadok a v ňom jedno celé číslo, ktoré určuje, koľko peňazí v daniach zaplatí úbohý sedliak Matej.
4
2 0 3 1
4
V prvý deň zaplatí 4 peniaze a naporcuje kravu 0, každý ďalší deň platí v daniach 0.
5
0 1000 0 0 1
5
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