VRadio sam ovaj zadatak onako kako ga (za sada) jedino znam, tj. preko dinamičkog programiranja, ali dovoljno za samo 4/10 uz TLE na ostalim primjerima! Kako da ubrzam kod? Hvala unapred!
http://z-trening.com/submit.php?submit=7100211299&subm_code=1
hOvaj problem ima veze sa Solitare igricom. (slaganje karata), i solitare sortom. Da bi se vremenski uklopio moraš koristiti binarno pretraživanje.
Mvidakovic evo je moja jedna ideja,nzm da li ima ikakve veze sa halilovom ali nije losa
prvo kopiraj ceo niz u neki drugi niz pa taj niz sortiraj.i onda ides redom kroz taj sort niz i nalazi mesto tih brojeva u prvom nizu...e sad npr ako imas
2 1 3
kad sort
imas 1 2 3
krenes od kraja
znaci trojka ona se nalazi na kraju prvog niza pa pocevsi od nje pa na desno mozes da imas samo 1 element
2 se nalazi na prvom mestu pa ona moze kao njen najblizi desni sused koji je vec proveren plus 1 znaci 1+1=2
i 1 je u sredini i moze kao njen najblizi vec provereni desni sused(to je broj 3) znaci 1+1=2
i konacno resenje je 2
kada kopiras niz kopiraj i mesto na kom se naalazi taj broj u prvom nizu kako bi posle mogo da odredis kad ti treba!
a za proveravanje najblizeg vec proverenog broja koristi binarno stablo(to ti je set u c++)