Editorial for Hakerisanje
Submitting an official solution before solving the problem yourself is a bannable offence.
Podzadatak 1
U prvom podzadatku, za svaki upit prođemo kroz podniz za koji se traži odgovor i izvršimo bitovsku konjunkciju svih elemenata. Vremenska složenost je .
Podzadatak 2
U drugom podzadatku u nizu su samo jedinice i nule. Primetimo da je odgovor na upit ili ili . U ovom podzadatku napravimo prefiksne sume, tj. proverimo koliko puta se pojavljuje do nekog indeksa . Neka je ovaj broj . Uslov da odgovor bude je da između indeksa i budu sve jedinice, tj. da važi . Vremenska složenost je .
Podzadatak 3 (kompletno rešenje)
Za kompletno rešenje neophodno je da zamislimo naše brojeve u binarnom sistemu i da primetimo da bitove ovde možemo da posmatramo nezavisno. Sada radimo sličan postupak kao i u prethodnom podzadatku, za svaki bit , nađemo u koliko brojeva do indeksa je on . Neka je ovaj broj . Da bi taj bit bio kada izvršimo konjunkciju svih elemenata, potrebno je da važi . Tada je odgovor na upit od do jednak , za sve za koje važi . Vremenska složenost je .
Comments