Énoncé¶
Joseph cherche à présent à comprendre comment se forment les liens de confiance entre les robots.
Joseph possède la liste des $N$ robots existants. Chaque robot possède un prénom et un nom.
Les robots peuvent être de deux types :
- Les robots prénomials sont en relation avec tous les robots qui partagent le même prénom ;
- Les robots nomials sont en relation avec tous les robots qui partagent le même nom.
Chaque robot possède également un indice d'amitié $\text{seuil}$. Joseph peut former un lien de confiance avec un robot si et seulement si il possède déjà un lien de confiance avec au moins $i$ de ses relations.
Chaque jour au matin, Joseph peut demander à former un lien de confiance avec les robots de son choix. Le soir, les robots pour lesquels les conditions sont remplies acceptent de former le lien de confiance.
Aidez Joseph à déterminer, pour chaque robot, en combien de jours il peut former un lien de confiance avec lui.
Entrée¶
L’entrée contiendra :
- Sur la première ligne, un entier : N, le nombre de robots.
- Sur les lignes suivantes, une liste de N éléments : robots, la liste
des descriptions des robots
- Une ligne par élément de la liste : séparés par des espaces, d'abord le prénom (maximum 16 caractères), ensuite le nom (maximum 16 caractères), puis le type du robot (P pour un robot prénomial, N pour un robot nomial) et finalement un entier seuil, le nombre de relations en commun nécessaire avant que le robot n'accepte notre demande de lien.
Sortie¶
Afficher, sur une ligne et séparés par un espace, le nombre minimal de jours
nécessaires pour former un lien de confiance avec chaque robot.
S'il est impossible de former un lien de confiance avec un robot, afficher
-1.
Contraintes¶
- $1 \le N \le 20$
- $0 \le \text{seuil} \le N$
Contraintes de performance¶
- $1 \le N \le 100\,000$
Prologin
2026










