Diferente pentru problema/ecexp intre reviziile #9 si #8

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="ecexp") ==
În această problemă o expresie poate fi:
* formată dintr-o singură variabilă notată cu o literă mică sau o majusculă;
* de forma: $(a$ ° $b)$, unde $a$ şi $b$ sunt expresii, iar ° este operatorul $'+'$ sau $'*'$.
 
Fiind dată o expresie să se determine câte expresii există care sunt echivalente cu ea. O expresie este echivalentă cu alta dacă sunt formate din aceleaşi variabile, iar cele două expresii evaluate dau aceeaşi valoare pentru orice valori posibile ale variabilelor. Afişaţi rezultatul modulo 10^9^+7.
 
Exemple de echivalenţe:
 
== code(c) |
(a+b) == (b+a)
(a+(b+c)) == ((a+b)+c)
(a+(b*c)) == ((c*b)+a)
==
 
Poveste şi cerinţă...
h2. Date de intrare
Fişierul de intrare $ecexp.in$ conţine pe prima linie numărul de teste $T$. Pe următoarele $T$ linii veţi găsi câte un string care reprezintă o expresie corectă.
Fişierul de intrare $ecexp.in$ ...
h2. Date de ieşire
În fişierul de ieşire $ecexp.out$ scrieţi rezultatul fiecărui test pe un rând separat.
În fişierul de ieşire $ecexp.out$ ...
h2. Restricţii
* $0 ≤ T ≤ 30$
* lungimea fiecărei expresii este între 1 şi 250 de caractere;
* fiecare expresie este corect formată;
* literele care apar într-o expresie sunt distincte; de exemplu $((a*b)+(a*c))$ nu este o expresie validă deoarece litera $a$ se repetă.
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example). |_. ecexp.in |_. ecexp.out |
| 5
  (a+b)
  (a+(b+c))
  (A+(B*C))
  ((x*y)+(a*b))
  ((a+(b+c))+(d*(e*f)))
| 2
  12
  4
  8
  1440
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
|
h3. Explicaţie
Pentru primul test, cele două expresii echivalente sunt $(a+b)$ şi $(b+a)$.
...
== include(page="template/taskfooter" task_id="ecexp") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.