LION King


Enviar solució

Punts: 15
Temps Límit: 1.5s
Límit de memòria: 64M

Autor/a:
tipus del problema
Estructures de Dades, Strings, Timelimit!
Categoria
Lliga de Programació FP
Llenguatges permesos
C, C#, C++, Haskell, Java, Kotlin, PHP, Python

LION King

Un LION és un LinkedIn Open Networker, és a dir, una persona que accepta qualsevol petició de contacte encara que no et conegui de res.

Ser un LION és una forma ràpida de desenvolupar una gran xarxa de contactes. Els usuaris LION acostumen a compartir la seva adreça de correu de forma que puguin rebre invitacions de contactes de segon grau, en contra de les recomanacions de LinkedIn.

LinkedIn és una xarxa social professional que es basa en la teoria dels "sis graus de separació" segons la qual dues persones del món es troben separades per un màxim de 5 intermediaris. Costa de creure, oi? Comprovem-ho! A quantes persones coneixes? Entre familiars, amics i companys és fàcil arribar a 100, oi? Doncs imaginem que demanes un favor als teus coneguts directes i, si no et poden ajudar, que "donin veus" (és a dir, que a la vegada els demanin als seus contactes). Si ningú et pot ajudar i tothom propaga el missatge als seus contactes, de cop i volta has demanat ajuda a 100*100 = 10.000 persones.

  • Contactes de primer nivell: 100
  • Contactes de segon nivell (contactes dels teus contactes directes): 10.000
  • Contactes de tercer nivell (contactes dels teus contactes de segon nivell): 1.000.000
  • Contactes de quart nivell (contactes dels teus contactes de tercer nivell): 100.000.000
  • Contactes de cinquè nivell (contactes dels teus contactes de quart nivell): 10.000.000.000 (no n'hi ha tantes persones al món!)
  • Contactes de sisè nivell (contactes dels teus contactes de cinquè nivell): 1.000.000.000.000

Els detractors d'aquesta teoria opinen que la xarxa no creix tan ràpidament donat que hi ha molts contactes comuns (els amics dels meus amics també són els meus amics), però, tot i això, si ho calculeu amb la meitat dels contactes, veureu que arribeu a una xifra que dobla la població mundial.

Quedem-nos amb la idea que els amics dels meus amics també són els meus amics i veurem quina és la mida d'una determinada xarxa de contactes. Una xarxa de contactes funciona de forma que si A contacta amb B, A i B passen a formar part de la mateixa xarxa, arrossegant tots els contactes de cada un a la nova xarxa.

Entrada

L'entrada comença amb el nombre de casos a processar.

Cada cas conté un número \(N\) a la primera línia \(1 \le N \le 100000\). Seguidament venen \(N\) parelles de noms. Cada nom està format per lletres de l'alfabet anglès i els noms es troben separats per un espai.

Sortida

Per a cada parella de noms, cal indicar la mida de la xarxa social resultant un cop que els dos membres s'han fet amics. Al final de cada cas cal imprimir una línia amb el separador ---.

Exemple d'Entrada

1
6
Antoni Joan
Maria Josep
Santi Mireia
Mireia Joel
Santi Joel
Joel Joan

Exemple de Sortida

2
2
2
3
3
5
---

Explicació del cas

  • En la primera línia es crea la xarxa [Antoni, Joan] --> 2
  • En la segona línia es crea la xarxa [Maria, Josep] --> 2
  • En la tercera línia es crea la xarxa [Santi, Mireia] -> 2
  • En la quarta línia s'afegeix al Joel a la xarxa on es troba la Mireia [Santi, Mireia, Joel] -> 3
  • En la cinquena línia, el Joel ja pertany a la xarxa on es troba el Santi i no canvia res [Santi, Mireia, Joel] -> 3
  • En la sisena línia es fusionen les xarxes on es troben Joel i Joan [Santi, Mireia, Joel, Antoni, Joan] -> 5

Comentaris

En aquests moments no hi ha comentaris.