Editorial for Carobnjak iz voza
Submitting an official solution before solving the problem yourself is a bannable offence.
Analiza
Nameće da će čarobnjaci potrošiti manje vremena na uspavljivanje Jetija ako koriste više snage. Pored toga, bez obzira što se specijalna magija koristi na kraju (posle bacanja običnih čarolija), možemo već na početku "uračunati" specijalnu magiju (ako je veća od obične magije). Zbog toga formiramo niz sa svim mogućim čarolijama i magijama. Naime, ako su i početna jačina obične čarolije i jačina specijalne magije čarobnjaka broj , onda u niz sa svim (mogućim) magijama dodajemo sledeće jačine: \(None\) M_i, S_i, \frac{S_i}{2^1}, \frac{S_i}{2^2}, \frac{S_i}{2^3}, ..., \frac{S_i}{2^k}, \(None\) gde je broj sa osobinom da je \(None\) \frac{S_i}{2^k}\geqslant 1 \ \ \ \ \text{i}\ \ \ \ \ \frac{S_i}{2^{k+1}} < 1. \(None\) Po formiranju niza , soritramo ga u nerastućem poretku, a zatim određujemo najmanji broj takav da je \(None\) a_1 + a_2 + a_3 + \dotsb + a_m \geqslant E. \(None\)
Kako su sve moći manje od ili jednake broju , to će i elementi niza biti između i milion, pa se taj niz može sortirati primenom sortiranja prebrajanjem (counting sort). Broj elemenata u nizu je . Složenost sortiranja je takođe . Određivanje broja koji predstavlja broj dana potrebnih da se uspava Jeti ima složenost .
Niz se može sortirati primenom nekog brzog algoritma za sortiranje (npr. quick sort) i tada je složenost samog sortiranja .
Zadatak možemo rešiti i bez sortiranja niza sa magijama. Naime, magije možemo smestiti u prioritetni red, a zatim iz reda brisati redom magije od najveće smanjijući svaki put Jetijevu moć za iznos te čarolije (magije) sve dok se Jeti ne uspava.
Comments