== include(page="template/taskheader" task_id="functii") ==
Personajul nostru principal, Auraș, a primit o temă interesantă la informatică: el a primit **[$N$]** funcții **$f[~i~] : Z → Z$**, unde fiecare funcție conține primele **[$K$]** variabile din mulțimea $\{a, b, c, d, e, x, y, z, t, u, v, k, m, n\}$, în ordine (care pot avea coeficienți întregi înaintea lor), alături de constante întregi, operatorii de adunare, scădere, înmulțire și paranteze rotunde. După aceste ${N}$ funcții primite, el are de evaluat o expresie formată din aceste funcții, alături de constante întregi, operatorii de adunare, scădere, înmulțire și paranteze rotunde. Din păcate Auraș nu se pricepe la acest tip de probleme și vă cere ajutorul ca să o rezolve, în schimbul a ${100}$ de puncte.
Personajul nostru principal, Auraș, a primit o temă interesantă la informatică: el a primit **[$N$]** funcții **$f[~i~] : Z → Z$**, unde fiecare funcție conține primele **[$K$]** variabile din mulțimea ${a, b, c, d, e, x, y, z, t, u, v, k, m, n}$, în ordine (care pot avea coeficienți întregi înaintea lor, fără a fi separați de variabile prin operatorul de înmulțire), alături de constante întregi, operatorii de adunare, scădere, înmulțire și paranteze rotunde. Tema lui Auraș cere să se evalueze o expresie formată din aceste **[$N$]** funcții primite, alături de constante întregi, operatorii de adunare, scădere, înmulțire și paranteze rotunde. Din păcate Auraș nu se pricepe la acest tip de probleme și vă cere ajutorul ca să o rezolve, în schimbul a $100$ de puncte.
Rezolvați-i tema lui Auraș pentru a primi cele $100$ de puncte.
h2. Date de intrare
Fișierul de intrare $functii.in$ ...
Pe prima linie a fișierului de intrare $functii.in$ se va afla numărul **[$N$]**, urmând ca pe următoarele **[$N$]** linii să se afle funcțiile **$f[~i~] : Z → Z$**.
Pe ultima linie a fișierului de intrare se va afla expresia de evaluat.
h2. Date de ieșire
În fișierul de ieșire $functii.out$ ...
Fișierul de ieșire $functii.out$ va conține rezultatul expresiei de evaluat $%773$.
h2. Restricții
h2. Restricții și precizări
* $... ≤ ... ≤ ...$
* $1 ≤ N ≤ 100$;
* $1 ≤ K ≤ 14$;
* $1 ≤ L(f[~i~]) ≤ 700, pentru orice f[~i~]$;
* $1 ≤ L(E) ≤ 700$;
* $L(f[~i~])$ = lungimea funcțiilor $f[~i~]$;
* $L(E)$ = lungimea expresiei de evaluat;
* Coeficienții și constantele, precum și argumentele funcțiilor regăsite în datele de intrare aparțin intervalului $[0, 10[^3^]]$ și sunt numere întregi;
* În definiția funcțiilor nu pot apărea alte funcții;
* În expresia de evaluat, argumentele funcțiilor sunt constante;
* Pentru $15$ puncte, $1 ≤ L(f[~i~]) ≤ 150$, $1 ≤ L(E) ≤ 150$ și $1 ≤ K ≤ 4$;
* Funcțiile $f[~i~]$ se dau în ordinea $f[~1~]$, $f[~2~]$, $f[~3~]$, ..., $f[~N~]$;
* Operatorii de adunare, scădere și înmulțire sunt, în ordine, următorii: $+$, $-$, $*$;
* Nu pot exista coeficienți ca în exemplul: f1(a)=a5, ci doar f1(a)=a*5, f1(a)=5*a sau f1(a)=5a;
* Se garantează că expresia de evaluat este corectă.
h2. Exemplu
table(example).
|_. functii.in |_. functii.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicație
|_. functii.in |_. functii.out |_. Explicație |
| 2
f1(a,b)=2a+5b+1
f2(a,b,c)=5b-c*1
(1*f1(3,4)-f2(1,1,1))*f2(0,0,7)+7
| 619
| $f1(3,4) = 27$
$f2(1,1,1) = 4$
$f2(0,0,7) = -7$
Expresia de evaluat va fi $(1*27 - 4) * (-7) + 7 = -154$, iar $-154 % 773 = 619$.
|
...
== include(page="template/taskfooter" task_id="functii") ==