Mutacions de bacteris P16308


Statement
 

pdf   zip

En un cert ecosistema conviuen nn tipus de bacteris, identificats amb noms s1<<sns_1 < \dots < s_n. Curiosament, els bacteris de cada tipus muten a un altre tipus després d’exactament un dia. Encara més curiosament, per a cada tipus de bacteri hi ha un altre tipus que muta a aquell tipus. És a dir, si denotem amb xyx \to y una mutació d’xx a yy, llavors en el conjunt de mutacions cada tipus apareix exactament una vegada com a xx i una vegada com a yy.

Donades les nn mutacions i nn instants de temps t1tnt_1 \dots t_n, digueu per a cada tipus sis_i en quin tipus haurà mutat després de tit_i dies.

Entrada

L’entrada consisteix en diversos casos, cadascun amb nn, seguida de les nn mutacions, seguides dels nn temps tit_i. Suposeu 1n1041 \le n \le 10^4, que cada nom té entre una i cinc lletres minúscules, que no hi ha cap xx ni cap yy repetida, que cada xx apareix com a yy, i 0ti1090 \le t_i \le 10^9.

Sortida

Per a cada cas, escriviu en què es transformarà cada tipus de bacteri sis_i després de tit_i dies. Les transformacions han de sortir ordenades per sis_i, i seguir el format de l’exemple. Escriviu una línia amb 20 guions després de cada cas.

Pista

Processeu el graf abans de llegir les tit_i. La solució esperada resol les nn consultes de cada graf amb cost total Θ(nlogn)\Theta(n \log n).

Public test cases
  • Input

    5
    d -> a
    e -> c
    b -> b
    a -> e
    c -> d
    1 10 6 4 0
    
    3
    zzzzz -> abcde
    abc -> abc
    abcde -> zzzzz
    12345678 1000000000 999999999
    

    Output

    a -> e
    b -> b
    c -> a
    d -> d
    e -> e
    --------------------
    abc -> abc
    abcde -> abcde
    zzzzz -> abcde
    --------------------
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++