Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 18. 04. 2015 11:23 — Editoval Spaggiari (18. 04. 2015 12:14)

Spaggiari
Příspěvky: 25
Reputace:   
 

dynamicke programovanie - stratene zatvorky

Ahoj, neviem si rady s nasledujucou ulohou, myslim si ze to je na dynamicke programovanie, ale nejako to vtom nevidim ako to implementovat. Vopred dakujem :)


Z aritmetického výrazu se nám poztrácely závorky. Určete minimální a maximální hodnotu, které může zadaný výraz nabývat, pokud do něj závorky doplníme vhodným způsobem.

Na stadardním vstupu je zadán korektně zapsaný aritmetický výraz tvořený pouze kladnými jednocifernými celočíselnými konstantami a binárními operátory +, - a *. Výraz tedy neobsahuje víceciferná čísla, žádné závorky, žádné jiné binární operátory ani unární minus, žádné oddělující mezery. Počet konstant ve výrazu není větší než 100. Program vypíše na standardní výstup jediný řádek obsahující dvě celá čísla oddělená mezerou - minimální a maximální hodnotu, kterých lze dosáhnout vhodným doplněním závorek do výrazu.

Můžete předpokládat, že všechny výsledky a i mezivýsledky získané při vyhodnocování jakkoliv uzávorkovaného výrazu nepřesáhnou hodnotu 2 miliardy (tzn. int v jazyce C#).


Příklad 1
Vstup:
   3+2*5+1*7-6

Odpovídající výstup:
   14 204

Vysvětlení:
Výrazy 3+(2*5)+(1*7)-6 nebo 3+(2*5)+(1*(7-6)) nabývají hodnoty 14,
výraz ((3+2)*(5+1)*7)-6 nabývá hodnoty 204.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson