== include(page="template/taskheader" task_id="zugraveala") ==
Ion are o casă lungă, tip vagon (camerele sunt dispuse liniar). El se apucă să zugrăvească. Pentru aceasta, își cumpără vopsele de 26 de culori, codificate prin litere mici ale alfabetului latin. Vreme de $N$ zile, el face zilnic una din următoarele operații:
# Zugrăvește următoarea cameră încă nezugrăvită cu o culoare dorită [$X$].
# Plictisit, trece prin toate camerele deja zugrăvite, iar pe cele care au culoarea $X$ le rezugrăvește cu culoarea [$Y$].
Cum va arăta casa lui Ion după cele $N$ zile?
Poveste și cerință...
h2. Date de intrare
Fișierul de intrare $zugraveala.in$ conține pe prima linie numărul [$N$]. Următoarele $N$ linii conțin câte o operație sub una din formele
* $1 X$ -- zugrăvește următoarea cameră în culoarea $X$ (unde $X$ este o literă mică)
* $2 X Y$ -- rezugrăvește toate camerele care au culoarea $X$ cu culoarea $Y$ (unde $X$ și $Y$ sunt litere mici, posibil egale)
Fișierul de intrare $zugraveala.in$ ...
h2. Date de ieșire
În fișierul de ieșire $zugraveala.out$ se vor afișa, pe o singură linie, lipite, culorile camerelor zugrăvite de Ion, în ordinea în care apar ele în casă.
În fișierul de ieșire $zugraveala.out$ ...
h2. Restricții
* $1 ≤ N ≤ 100.000$
* Casa lui Ion are cel puțin $N$ camere.
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example).
|_. zugraveala.in |_. zugraveala.out |
| 10
1 c
1 b
1 a
1 c
1 d
2 a b
1 c
1 a
1 b
2 b d
| cddcdcad
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicație
Ion zugrăvește primele 5 camere în culorile [$cbacd$]. Apoi înlocuiește toate [$a$]-urile cu [$b$]-uri, obținând [$cbbcd$]. Zugrăvește încă trei camere, obținând [$cbbcdcab$]. În sfârșit, înlocuiește toate [$b$]-urile cu [$d$]-uri, obținând [$cddcdcad$].
...
== include(page="template/taskfooter" task_id="zugraveala") ==