Diferențe pentru problema/functii între reviziile #5 si #20

Nu există diferențe între titluri.

Diferențe între conținut:

== 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, fără a fi separați de variabile prin *), 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 **[$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.
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 Aur 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
Pe prima linie a fișierului de intrare $functii.in$ se va afla numărul **[$N$]**, urmând ca pe urmatoarele **[$N$]** linii să se afle funcțiile **$f[~i~] : Z → Z$**.
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
* $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 $[1, 10[^3^]]$ și sunt numere întregi;
* Funcțiile $f[~i~]$ se dau în ordinea $f[~1~]$, $f[~2~]$, $f[~3~]$ ..., $f[~N~]$;
* 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 |_. 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
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 $(27 - 4) * (-7) + 7 = -154$, iar $-154 % 773 = 619$.
$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$.
|

Nu există diferențe între securitate.