Amistat a la xarxa P11840


Statement
 

pdf   zip

Una nova xarxa social s’ha posat de moda, i nn persones s’hi han apuntat. Inicialment, ningú coneix a ningú. Després, de tant en tant dues persones es fan amigues (directes). Feu un programa que mantingui el nombre d’amics de cadascú a cada moment, suposant que la relació d’amistat és d’equivalència. En particular, suposeu que els amics dels amics també són (transitivament) amics.

Entrada

L’entrada consisteix en diversos casos, cadascun amb el nombre de persones nn i la quantitat d’operacions qq. Segueixen les qq operacions, de dos tipus:

  • c xx: Consulta el nombre d’amics de xx (xx inclòs).

  • a xx yy: Indica que xx i yy, amb xyx \ne y, s’han fet amics directes. No fa res si xx i yy ja eren amics, ja sigui directament o indirectament.

Suposeu 2n1042 \le n \le 10^4, nq5nn \le q \le 5n, i que les persones es numeren entre 1 i nn.

Sortida

Per a cada cas, i per a cada operació de consulta, escriviu el nombre d’amics de la persona consultada. Escriviu una línia amb 10 guions al final de cada cas.

Public test cases
  • Input

    2 2
    a 2 1
    c 2
    
    4 11
    c 1
    c 2
    a 1 2
    c 1
    c 2
    c 4
    a 4 1
    c 2
    a 2 4
    c 2
    c 3
    

    Output

    2
    ----------
    1
    1
    2
    2
    1
    3
    3
    1
    ----------
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++ Python