A. Shokoladni bo‘lish
50 ball
(Quyidagini «Masala sharti» maydoniga shu ko‘rinishda qo‘ying —
rasm qatori ham alohida qatorda tursin.)
Anvar do‘kondan N × M o‘lchamli shokolad plitkasini sotib oldi. Plitka N qator va M ustundan iborat bo‘lib, jami N · M ta kichik 1 × 1 bo‘lakchadan tashkil topgan.
Anvar shokoladni sinfdoshlariga bo‘lib bermoqchi, shuning uchun uni alohida 1 × 1 bo‘lakchalarga ajratishi kerak.
Bitta sindirish — bu bitta bo‘lakni bo‘lakchalar orasidagi to‘g‘ri chiziq bo‘yicha ikkiga ajratish. Bo‘laklarni ustma-ust qo‘yib, bir vaqtda sindirish mumkin emas.
Anvarga plitkani to‘liq 1 × 1 bo‘lakchalarga ajratish uchun eng kamida nechta sindirish kerak bo‘ladi?
Kirish ma’lumotlari
Bitta qatorda probel bilan ajratilgan ikkita butun son: N va M.
Chiqish ma’lumotlari
Bitta butun son — eng kam sindirishlar soni.
Cheklovlar
1 ≤ N, M ≤ 10^9
Misollar
2 3
5
1 1
0
Tushuntirish
1-misol rasmda ko‘rsatilgan. Avval plitkani gorizontal chiziq bo‘yicha ikkita 1 × 3 bo‘lakka ajratamiz (1 ta sindirish). Keyin har bir 1 × 3 bo‘lakni 2 martadan sindiramiz (4 ta sindirish). Jami 5 ta.
2-misolda shokolad allaqachon bitta 1 × 1 bo‘lakcha — hech narsa sindirish shart emas.
Diqqat: javob juda katta bo‘lishi mumkin. C++ da long long, Java da long turidan foydalaning.