switchletters

Time limit: 0.4s Memory limit: 128MB Input: switchletters.in Output: switchletters.out

Se dă un șir s=s0,s1,...,sn1s = s_0,s_1,...,s_{n-1} de nn litere mici. Prin s[i..j]s[i..j] se înțelege secvența si,si+1,...,sjs_i,s_{i+1},...,s_j. Asupra șirului se efectuează de mai multe ori operația switch(i,j,c1,c2)switch(i, j, c_1, c_2), care în secvența s[i..j]s[i..j] modifică orice apariție a literei c1c_1 în litera c2c_2. De exemplu, dacă s=abcdaabcdaaabs=abcdaabcdaaab, atunci switch(0,5,a,z)switch(0,5,'a','z') face ca șirul să devină s=zbcdzzbcdaaabs=zbcdzzbcdaaab.

Cerință

Dându-se șirul ss și mm operații switch, să se afișeze șirul ss după efectuarea celor mm operații.

Date de intrare

Fișierul switchletters.in conține pe prima linie șirul ss, pe a doua linie numărul natural mm, iar pe următoarele mm linii se află câte două numere naturale și două litere mici ale alfabetului englez, separate prin câte un spațiu i j c1 c2i \ j \ c_1 \ c_2, reprezentând operația switch(i,j,c1,c2)switch(i,j,c_1,c_2).

Date de ieșire

Fișierul switchletters.out conține șirul ss după efectuarea celor mm operații.

Restricții și precizări

  • Șirul ss conține cel mult 1 000 0001 \ 000 \ 000 litere mici: 1n1 000 0001 \le n \le 1 \ 000 \ 000.
  • Șirul ss nu conține alte caractere în afară de litere mici.
  • Într-o operație switch(i,j,c1,c2)switch(i, j, c_1, c_2), întotdeauna 0ij<n0 \leq i \leq j < n, iar c1c2c_1 \neq c_2.
  • 1m2171 \leq m \leq 2^{17}.
# Punctaj Restricții
1 16 1n,m2101 \le n, m \leq 2^{10}
2 48 210<n,m2162^{10} < n, m \leq 2^{16}
3 36 Nu există alte restricții.

Exemplul 1

switchletters.in

aaaabbbbcccc
3
0 2 a y
5 9 b c
1 3 a z

switchletters.out

yyyzbccccccc

Explicație

Pentru primul exemplu, După operația switch(0,2,a,y)switch(0,2,’a’,’y’), s=yyyabbbbccccs=yyyabbbbcccc.
După operația switch(5,9,b,c)switch(5,9,’b’,’c’), s=yyyabcccccccs=yyyabccccccc.
După operația switch(1,3,a,z)switch(1,3,’a’,’z’), s=yyyzbcccccccs=yyyzbccccccc

Exemplul 2

switchletters.in

anaaremere
2
3 6 z y
2 7 o x

switchletters.out

anaaremere

Explicație

Pentru al doilea exemplu, ss rămâne neschimbat, deoarece literele zz și oo nu apar în șir.

Log in or sign up to be able to send submissions!