Portales interdimensionales P56361


Statement
 

pdf   zip

En el año xx42, científicos humanos descubrieron una tecnología extraña (extraterrestre, posiblemente) que era capaz de crear portales que comunicaban todas las dimensiones del universo entre ellas. Tras realizar largas investigaciones, descubrieron que las dimensiones podían numerarse de la 1 a la NN, y que los portales sólo servían para viajar de una dimensión ii a la dimensión anterior i1i-1 o a la siguiente i+1i+1.

Para crear el portal entre dos dimensiones era necesario disponer de un dispositivo de determinada PIU (potencia interdimensional universal). En particular, descubrieron que cada dimensión tiene un nombre (formado por como mucho 10 letras mayúsculas de la A a la Z), del cual puede extraerse un peso (la suma de los valores de las letras, desde A=1 hasta Z=26), y que la PIU para viajar entre dos dimensiones adyacentes es el valor absoluto de la diferencia de sus respectivos pesos. Por ejemplo, para viajar entre dos dimensiones consecutivas de nombre ABZ (peso 1+2+26=291+2+26=29) y CACA (peso 3+1+3+1=83+1+3+1=8) es necesario una PIU de 298=2129-8=21.

Sabiendo los nombres de todas las dimensiones, se te pide que escribas un programa que calcule cual es la PIU necesaria para viajar entre dos dimensiones xx e yy, o sea, el máximo de las PIUs que se necesitan para crear portales entre xx y x+1x+1, x+1x+1 y x+2x+2, …, y1y-1 e yy (si se diera el caso que xyx\le y). Tu programa deberá responder a varias de estas preguntas, y deberá tener en cuenta que, ocasionalmente, los nombres de las dimensiones cambian.

Entrada

Dos enteros NN y QQ, con el número de dimensiones y el número de instrucciones que recibirá tu programa. A continuación, NN líneas con los nombres iniciales de las NN dimensiones, y QQ líneas con instrucciones de 2 tipos:

  • A <x> <nombre>, con 1xN1\le x\le N, para indicar que la dimensión xx pasa a llamarse a partir de ahora <nombre>; y

  • B <x> <y>, con 1x,yN1\le x,y\le N, para indicar que calcules la PIU necesaria para viajar de la dimensión xx a la dimensión yy.

Salida

Para cada operación de tipo B, escribe una línea con el PIU necesario para viajar por las dimensiones del intervalo dado.

Puntuación

  • TestA:   Entradas N=2N=2 y 1Q1001\le Q\le 100, como el Ejemplo 1.

  • TestB:   Entradas 2N1002\le N\le 100 y 1Q1001\le Q\le 100, como el Ejemplo 2.

  • TestC:   Entradas 2N50002\le N\le 5000 y 1Q50001\le Q\le 5000.

  • TestD:   Entradas 2N4000002\le N\le 400000 y 1Q100001\le Q\le 10000, y no hay ninguna instrucción de tipo A (ninguna dimensión cambia de nombre).

  • TestE:   Entradas 2N4000002\le N\le 400000 y 1Q200001\le Q\le 20000.

Public test cases
  • Input

    2 10
    YOMU
    APZF
    B 1 2
    B 2 2
    A 1 M
    B 1 1
    A 2 WTA
    B 2 1
    A 2 OWRAJKZL
    A 1 QTEFSMINN
    A 1 PITZL
    B 2 1
    

    Output

    25
    0
    0
    31
    33
    
  • Input

    4 8
    A
    B
    C
    D
    B 1 3
    A 2 D
    B 1 3
    A 4 LOL
    B 1 3
    B 1 4
    A 1 WOLOLO
    B 1 4
    

    Output

    1
    3
    3
    36
    88
    
  • Information
    Author
    David Balaghi
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++