Prihlásenie Registrácia  

D - Rovnice

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3.4, Python 3.11

Poč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.

Úloha

Daná 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.

Vstup

Vstup 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ýstup

Výstup by mal obsahovať pre každú rovnicu jediný riadok v jednom z tvarov:
  1. 0=0
  2. 0=1
  3. x=b, pričom b je celé číslo
  4. ax=b, pričom a,b sú celé čísla a>1 a a, b sú nesúdeliteľné.
Rovnica vo výstupe musí mať práve tie isté riešenia ako príslušná rovnica na vstupe.

Príklad

Vstup

4
0-x=7
2*(4-x*5)=10
(2-2)*x=7
5*0=0*x

Výstup

x=-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.