Programozó versenyek

DEIK Regionális Programozó Csapatverseny, egyetemi kategória, 2022. december 4.

2022. december 4. 10:00 – 2022. december 4. 15:15

Táblázatkezelés

A jelenlegi gazdasági helyzetben sajnos kimondottan nehéz a cégeknek kigazdálkodniuk egy-egy minőségibb táblázatkezelő szoftver licenszének a díját, így mi, mint szenior programozók úgy döntöttünk, hogy készítünk egy ingyenes, ámde mégis professzionális applikációt mely képes kiszolgálni a vállalatok igényeit. Sajnos azonban a feladat nehezebbnek bizonyult, mint elsőre gondoltuk, így végül úgy döntöttünk, hogy csak egy olyan táblázatkezelő szoftvert készítünk, mely ún. "egyoszlopos" táblázatokat tud kiértékelni. A táblázat minden oszlopa az alábbi információt tartalmazza:
    VALUE x _ -> a cella értékét x-re állítja. A második paraméter ilyenkor mindig a _ karakter.
    ADD x y -> a cella értékét x+y-ra állítja.
    SUB x y -> a cella értékét x-y-ra állítja.
    MULT x y -> a cella értékét x*y-ra állítja.
A cellák indexelése 0-tól indul és egyesével növekszik. A művelet után szereplő értékek az alábbiak lehetnek:
  • Egész számok;
  • A _ karakter, mely a "semmit" jelöli;
  • $x alakú, mely az x-edik cella érétékére való hivatkozást jelenti. A hivatkozás történhet előre- és hátrafelé is, de ciklikus hivatkozás nem jelenik meg a feladatban.
A feladatunk az, hogy egy megadott táblázat esetén kiszámoljuk és kiírjuk az egyes cellákban szereplő konkrét értékeket.

Input

A bemenet az alábbi sorokból áll:
  • Az első sorban egy pozitív egész N szám áll, mely a táblázat celláinak számát adja meg.
  • A következő N darab sor mindegyike három, szóközzel elválasztott értéket tartalmaz: művelet par1 par2, ahol a művelet a VALUE, ADD, SUB, MULT szavak valamelyike, míg par1 és par2 a művelethez tartozó két paraméter (változó) a fentiek szerint.

Output

A kimenet N darab sor, melyek mindegyike egyetlen egész számot tartalmaz, mely az adott sor indexével megegyező indexű cella végső, kiszámolt értéke (azaz a 0. sor megfelel a 0. cellában szereplő értéknek, stb.).

Megkötések

  • 1≤ N ≤ 100;
  • A "szám típusú" paraméterek (tehát azok melyek nem $x, vagy _ alakúak) alsó korlátja -10000, felső korlátja 10000;
  • A hivatkozás típusú paraméterek $(egész szám) alakúak, melyek alsó korlátja $0 (azaz a 0. cellára hivatkozik), felső korlátja pedig $(N-1) (azaz az utolsó cellára hivatkozik. Ciklikus- és önhivatkozások nem jelennek meg a feladatban.

Példa

Input:
  1. 3
  2. VALUE 20 _
  3. ADD $0 100
  4. ADD $1 1
letöltés szöveges állományként Output:
  1. 20
  2. 120
  3. 121
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.