Boris este un elev pasionat de matematică. Ieri, învățătoarea a predat la școală o nouă lecție, ecuațiile matematice, și i-a dat o foaie cu exerciții ca temă. Ecuațiile din temă sunt de două tipuri: cu o necunoscută ( x
) și cu două necunoscute (x
și y
). Deoarece el este în clasa a 3-a, singurele operații matematice pe care le cunoaște sunt adunarea, scăderea și înmulțirea, deci doar acestea vor apărea în ecuații. Ele conțin și semnul egal, și paranteze deschise și închise. De asemenea, în timpul calculelor el nu va trebui niciodată să înmulțească două necunoscute. În dreapta semnului de egalitate nu va apărea x
sau y
, însă pot apărea expresii.
O variabilă poate apărea în trei moduri într-o ecuație: dacă x
este necunoscuta, și trebuie înmulțită cu 12
, aparițiile posibile ale expresiei sunt 12*x
, x*12
și 12x
. Deci, o posibilă ecuație poate fi: ((12x+4y)*4-244)=4*239+124-2*2*3
.
Întrucât Boris este cel mai deștept elev din clasă, profesoara nu vrea ca acesta doar să găsească o soluție, ci dorește să găsească drept soluție doar numere prime sau să spună că nu există. El nu crede că se va descurca și vă cere ajutorul.
Cerința
Scrieți un program care, primind o ecuație ca cele descrise mai sus, verifică dacă aceasta are drept soluție numere prime, iar, în caz afirmativ, afișează soluția în care x
are valoarea minimă.
Date de intrare
Programul citește de la tastatură un șir de caractere, ecuația pe care Boris trebuie să o rezolve.
Date de ieșire
Dacă ecuația nu are soluție, fișierul standard de ieșire va conține pe prima linie mesajul No solution
. Altfel, dacă după efectuarea tuturor calculelor, ecuația conține ambele necunoscute, fișierul standard de ieșire va conține o singură linie de forma x=val1,y=val2
(fără spații), unde val1
și val2
sunt soluțiile ecuației (numere naturale nenule prime); iar dacă ecuația îl conține doar pe x
, fișierul va conține o singură linie de forma x=val
, unde val
este un număr natural pozitiv prim care satisface ecuația.
Restricții și precizări
- Numărul de caractere din ecuație nu va depăși
256
. - Singurele caractere care pot apărea în ecuație sunt
+
,-
,*
,x
,y
,(
,)
,0
, …,9
. - În cazul în care există soluție, valoarea lui
x
(și cea a luiy
) nu va depăși5.000.000
. - Valoarea expresiei din dreapta egalului nu va depăși
10
7
. - Rezultatul operațiilor efectuate în timpul calculelor nu va depăși
10
8
. - Pentru
10%
dintre teste, ecuația va conține o singură necunoscută și nu va avea paranteze. - Pentru
10%
dintre teste, ecuația va conține o singură necunoscută și va avea și paranteze. - Pentru
10%
dintre teste, ecuația va conține două necunoscute și nu va avea paranteze. - Coeficienții necunoscutelor
x
șiy
nu vor fi numere negative.
Exemplul 1:
Intrare
((12+4*x)*3-12+6x)+2*3=333*2-11*7-1
Ieșire
x=31
Exemplul 2:
Intrare
((3y+2*x)-10)*6+9*9=99
Ieșire
x=2,y=3
Exemplul 3:
Intrare
4*x+9y=40
Ieșire
No solution
Explicație
Nu există două numere naturale pozitive prime care să satisfacă ecuația. (x=1
și y=4
nu respectă ultima proprietate, niciuna dintre aceste valori nefiind număr prim).
Exemplul 4:
Intrare
((12x+4y)*4-244)=4*239+124-2*2*3
Ieșire
x=3,y=73