1 - Trotoar
Vremensko ograničenje | Memorijsko ograničenje |
---|---|
1000ms | 64MB |
Mali Milutin mnogo voli da ide u školu, tj. da pešači od kuće do škole. Njegov omiljeni predmet je matematika, omiljeni brojevi - celi brojevi, a omiljene operacije su mu sabiranje i množenje jer ostale ne zna.
Jednog dana, na putu do škole, naišao je na tri cela broja \(a\), \(b\) i \(c\), napisana jedan za drugim kredom na trotoaru. Tada mu je sinula strašna ideja: dopisaće neku od njemu omiljenih operacija između prvog i drugog kao i između drugog i trećeg broja tako da rezultat bude najmanji mogući broj; zatim će pobeći sa lica mesta. Odredite koji je to najmanji mogući broj uzimajući u obzir da Milutin nije mogao da menja redosled brojeva niti da dopisuje zagrade, ali da zna o prioritetu operacija.
Opis ulaza
U prvom i jedinom redu standardnog ulaza nalaze se tri cela broja \(a\), \(b\) i \(c\), razdvojena razmacima i u redosledu kojim su napisani na trotoaru.
Opis izlaza
U prvom i jedinom redu standardnog izlaza ispisati jedan ceo broj - traženi najmanji mogući broj koji može dobiti Milutin.
Primer 1
Ulaz
Izlaz
Primer 2
Ulaz
Izlaz
Objašnjenje primera
U prvom primeru najmanji broj dobijamo dopisivanjem dve operacije množenja: \(1 \cdot 2 \cdot 1 = 2\), dok je za drugi primer potrebno prvo dopisati sabiranje pa množenje : \((-2) + 5 \cdot (-7) = -37\).
Ograničenja
Test primeri su podeljeni u dve disjunktne grupe:
- U test primerima koji vrede \(40\) poena važiće \(1 < a, b, c < 100\).
- U test primerima koji vrede \(60\) poena važiće \(-1000 < a, b, c < 1000\).
Autor | Tekst i test primeri | Analiza rеšenja | Testiranje |
---|---|---|---|
Nikola Milosavljević | Nikola Milosavljević | Nikola Milosavljević | Nikola Jovanović |
Glavno rešenje
Ovo je najlakši zadatak sa Kvalifikacija čije je rešenje pravolinijsko i složenosti \(O(1)\). Potrebno i dovoljno je uočiti da postoje samo \(4\) načina na koja se mogu postaviti operacije pa je potrebno vratiti samo \(\min\{ a + b + c, a + b \cdot c, a \cdot b + c, a \cdot b \cdot c \}\). Ograničenja su takva da rešenje staje u \(32\)-bitni ceo broj. Napomenimo da nije lako odraditi analizu slučajeva na osnovu broja pozitivnih/negativnih brojeva među \(a\), \(b\), \(c\); između ostalog, problem prave specijalni slučajevi kada su neki od njih \(0\) ili \(\pm 1\) (npr. nije uvek optimalno koristiti samo sabiranje ako su svi brojevi pozitivni).
Dodatno, za prvi podzadatak je rešenje uvek \(a + b + c\) jer za sve realne (a samim tim i cele) brojeve \(x, y \geq 2\) važi \((x - 1)(y - 1) \geq (2 - 1)(2 - 1) = 1\) što je ekvivalento sa \(x + y \leq xy\) što znači da se uvek isplati da vršimo sabiranje umesto množenja.
01_trotoar.cpp | |
---|---|