Počet bodov:
Program:  20b

Mišof doma upratoval a v krabici od topánok našiel celkom peknú úlohu. Bolo mu ju ľúto vyhodiť a na jej riešenie nemal čas, tak sa rozhodol, že ju dá vám. Zadanie vyzerá nasledovne:

Každé číslo je prirodzené číslo od 1 do 100.

Každý výraz je buď súčin, alebo výraz+súčin, alebo výraz-súčin.

Každý súčin je buď term alebo súčin*term.

Každý term je buď číslo, alebo (výraz), alebo unárfcia, alebo binárfcia.

Každá unárfcia je div2(výraz). Funkcia div2 pre vstup \(x\) vracia hodnotu \(x/2\) zaokrúhlenú nadol.

Každá binárfcia je buď min(výraz,výraz) alebo max(výraz,výraz) – význam týchto funkcií je snáď jasný.

Úloha

Na vstupe je nejaký výraz. Naschvál sme ho pokazili: namiesto niektorých čísel v ňom môže byť otáznik.

Zistite, či má daný výraz jednoznačne určenú hodnotu. Ak áno, nájdite ju.

Formát vstupu

Vstup má niekoľko riadkov (od 1 do 10). V každom je jeden výraz. Každý výraz má aspoň 1 a najviac 100 znakov a spĺňa vyššie uvedený popis.

Formát výstupu

Pre každý výraz zo vstupu vypíšte jeden riadok. Ak je jeho hodnota jednoznačne určená, vypíšte ju, inak vypíšte otáznik.

Hodnotenie

Je 20 vstupov. V prvých 6 vstupoch nie sú otázniky. Ďalšie 4 sú v nejakom zmysle ľahké.

Príklad

Input:

2+3*4
?+?
100-?
max(?,100)
div2(div2(div2(div2(div2(div2(div2(?)))))))
((?*?)+(?*?))*(1-1)
100*100*100*100*100*100*100*100*100*100*100

Output:

14
?
?
100
0
0
10000000000000000000000

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.