D - RovniceČasový limit: 2s, Pamäťový limit: 64MiBProgramovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3.4, Python 3.11Počet bodov: 2 [ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ] Šiestačikovia sa práve učia riešiť lineárne rovnice. Medzi nimi aj Ferko, ktorý už porozumel, ako riešiť úlohu typu: "Čím treba vynásobiť číslo a aby som dostal číslo b?". Nanešťastie, nie každá lineárna rovnica je takto jednoduchá. Niekedy je potrebné najskôr urobiť niekoľko úprav. Ferko sa pri úpravách však často mýli a tak by potreboval program, ktorý by mu pre zadanú rovnicu vypísal upravenú rovnicu. Tak si bude môcť skontrolovať, či ju upravil správne. Pomôžte mu. ÚlohaDaná je lineárna rovnica. Úlohou je upraviť ju na tvar ax = b, pričom a, b sú celé nesúdeliteľné čísla. Podrobnosti v popise výstupu.VstupVstup obsahuje na prvom riadku jediné číslo T (1≤T≤50). Každý z nasledujúcich T riadkov obsahuje rovnicu, ktorú treba upraviť. Zápis rovnice je neprázdny reťazec dĺžky nanajvýš 200 obsahujúci len znaky '(', ')', '+', '-', '*', 'x', '=', '0'...'9'. Reťazec obsahuje práve jedno '=' a práve jedno 'x' a formuje korektne zapísanú rovnicu (viď. formálny popis nižšie). Pri úpravách platia obvyklé pravidlá (sčítanie a odčítanie majú nižšiu prioritu ako násobenie, a pod.). Môžete predpokladať, že rovnica sa dá upravovať tak, že žiaden medzivýsledok v absolútnej hodnote neprekročí 30000. VýstupVýstup by mal obsahovať pre každú rovnicu jediný riadok v jednom z tvarov:
PríkladVstup4 0-x=7 2*(4-x*5)=10 (2-2)*x=7 5*0=0*x Výstupx=-7 5x=-1 0=1 0=0 Formálny zápis rovnice
<rovnica> ::= <výraz-pm> "=" <výraz-pm>
<výraz-pm> ::= <výraz-n> [ "+" <výraz-pm> | "-" <výraz-pm> ]
<výraz-n> ::= <výraz> [ "*" <výraz-n> ]
<výraz> ::= "(" <výraz-pm> ")" | "x" | <číslo>
pričom <číslo> je zápis nezáporného čísla nepresahujúceho 30000, neobsahujúci nadbytočné nuly na začiatku.
|