Mika igra jednu, ne tako poznatu, kockarsku igru žetoni. Igra se sastoji u sledećem: na početku, ispred njega se nalazi n gomila žetona u nizu, pri čemu je na i-toj gomili ai žetona. Zatim Mika odigra određeni broj poteza, gde se pod jednim potezom podrazumeva izbor dva broja i i j (i ≤ j) i dodavanje po jednog žetona svim gomilama između i-te i j-te, uključujući i ove dve gomile. Cilj igre je da, posle nekog broja poteza, na svim gomilama bude tačno k žetona.
Kada se igra završi, igrač dobija žetone na osnovu broja odigranih poteza - šo manje poteza, to više žetona. Odredite koliko je najmanje poteza potrebno da bi Mika završio igru i možda ćete dobiti neke od Mikinih žetona.
Ulaz.
(Ulazni podaci se učitavaju sa standardnog ulaza) U prvom redu ulazne datoteke nalaze se dva prirodna broja, n i k, koji predstavljaju, redom, broj gomila i traženi broj žetona na svakoj gomili na kraju igre (1 ≤ n ≤ 106, 1 ≤ k ≤ 109). U narednom redu nalaze se n celih brojeva iz segmenta [0, k] - opis gomila.
Izlaz.
(Izlazni podaci se ispisuju na standardni izlaz) U prvom i jedinom redu izlazne datoteke ispisati jedan ceo broj - najmanji broj poteza potrebnih da se završi igra. Koristiti 64-bitni tip podataka.
Primer 1.
standardni ulaz | standardni izlaz | |
---|---|---|
4 5 2 1 3 1 |
6 |
Objašnjenje.Ukoliko sa [i, j] označimo dodavanje po jednog žetona gomilama i, i + 1, ..., j, onda nizom od 6 poteza [2, 4], [4, 4], [4, 4], [1, 4], [1, 2], [1, 2] dobijamo po 5 žetona na svakoj gomili, kao što je i trebalo. Ovo nije moguće postići u manje od 6 poteza.
Napomena.
U 30% test primera je n ≤ 103.
Comments