Cuvintele Magice

Time limit: 1s Memory limit: 512MB Input: magice.in Output: magice.out

Mini-Burac alături de Elefantul Marcici fac ravagii în oraș...

Cerință

Vi se dă un cuvânt format din NN litere ale alfabetului latinesc și QQ intervale ce reprezintă subsecvențe ale acestui cuvânt.
Cuvântul se numește magic doar dacă fiecare subsecvență dintre cele QQ are toate literele, care sunt vizibile, distincte.
La început, toate literele sunt vizibile.
Totuși, la fiecare moment de timp ii (1iN1 \le i \le N), a PiP_i-a litera este acoperită, și nu mai este astfel vizibilă. Se garantează că PP este o permutare a numerelor de la 11 la NN.
Aflați după al cătelea moment de timp cuvântul va deveni magic (posibil 00, adică string-ul era magic înainte să se înceapa acoperirea de litere).

Date de intrare

Pe prima linie a fișierului de intrare magice.in se găsește un cuvânt de NN litere latinești.
Pe următoarea linie se găsește numărul de intervale QQ.
Pe următoarele QQ linii se găsesc perechi de forma LiRiL_i \: R_i (1LRN1 \le L \le R \le N), semnificând subsecvențele din cerință.
Pe ultima linie se găsesc NN numere, reprezentând permutarea PP.

Date de ieșire

Pe prima linie a fișierului de ieșire magice.out se va găsi un singur număr între 00 și NN, reprezentând momentul de timp la care cuvântul dat devine magic.

Restricții și precizări

  • N,Q105N, Q \le 10^5
  • Pentru 1414 puncte, N,Q500N, Q \le 500
  • Pentru încă 2121 puncte, N,Q3000N, Q \le 3000
  • Pentru încă 1414 puncte, cuvântul dat va fi compus doar din litera a

Exemplul 1

magice.in

aaaaa
2
1 2
4 5
2 4 1 5 3

magice.out

2

Exemplul 2

magice.in

abbabaab
3
1 3
4 7
3 5
6 3 5 1 4 2 7 8

magice.out

5

Explicație

Evoluția cuvântului (începând cu momentul de timp 0)
abbab#ab
ab#ab#ab
ab#a##ab
#b#a##ab
#b####ab
######ab
#######b
########

Exemplul 3

magice.in

abcd
1
1 4
1 2 3 4

magice.out

0

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