Nu aveti permisiuni pentru a descarca fisierul grader_test10.ok
Diferente pentru problema/ecexp intre reviziile #9 si #10
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") ==
