Editorial for Lubenice
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Analiza
Primetimo da za svako i svako važi , iz čega sledi nejednakost . U skladu sa ovim, razdvajamo problem na tri slučaja u zavisnosti od vrednosti :
Prvi slučaj:
- Iz gornje nejednakosti imamo , pa uslov tražen u zadatku ne može biti ispunjen ni za jedno , te je konačno rešenje , nezavisno od vrednosti i .
Drugi slučaj:
- U ovom slučaju imamo da je uslov tražen u zadatku ispunjen samo ako je , što je moguće samo ako i i , što je ekvivalentno tome da , gde je . Dakle, treba naći broj prirodnih brojeva deljivih sa u intervalu . Ovo dobijamo računanjem broja takvih brojeva u i oduzimanjem broja takvih brojeva u : .
Treći slučaj:
- Poslednji slučaj je najsloženiji jer nas prvobitna nejednakost ne dovodi direktno do zaključka, tj. da li je podela moguća za neko zavisi na netrivijalan način od deljivosti sa .
- Iako nas ograničenja za i odvraćaju od brute-force rešenja (prolazak kroz sve brojeve od i i provera da li je traženi izraz tačan), često je u ovakvim situacijama, kada je potrebno pronaći šablon, dobra ideja generisanje i posmatranje vrednosti koje brute-force proizvede. Ukoliko to ovde uradimo za npr. (drugi podzadatak) i možemo primetiti da je podela moguća za svako , iz čega prirodno pretpostavljamo da je moguća za svako . U ovu pretpostavku se možemo dodatno ubediti povećavanjem .
- Ukoliko je ovo tačno za , tačno je i za svako drugo koje spada u treći slučaj, jer mora da važi (proveriti!) pa je stoga (ako je naša pretpostavka tačna) za svako : .
- Ovo nas dovodi do efikasnog rešenja za treći slučaj: za svako u proverimo uslov "ručno", dok za pretpostavimo da sigurno važi. Ovo se ispostavlja kao tačno, a ukoliko želimo da budemo u potpunosti sigurni moguće je tvrdnju sličnu našoj pretpostavci i malo formanije dokazati (hint: posmatrati ponašanje izraza za ).
Comments