Reconstrucción de la jerarquía de departamentos por pares de subordinación
Python
Hard
dicts
Tarea «Reconstrucción de la jerarquía de departamentos por pares de subordinación»
Se dan pares de subordinación de empleados en el formato 'jefe:subordinado'. Es necesario reconstruir la estructura jerárquica completa de los departamentos. Cada empleado puede tener varios subordinados, pero solo un jefe (excepto el director raíz). Los datos de entrada pueden contener ciclos o datos incompletos; dichos casos deben ignorarse. Para cada departamento (el jefe más alto en la cadena), mostrar la lista de todos los empleados de ese departamento en orden alfabético, separados por un espacio. Los departamentos se ordenan por el nombre del jefe del departamento.
Formato de entrada
La primera línea contiene un número entero N (1 ≤ N ≤ 10000) — la cantidad de pares. Luego N líneas, cada una en el formato: 'jefe:subordinado' (letras latinas, longitud de 1 a 20 caracteres).
Formato de salida
Para cada departamento, mostrar una línea: 'jefe del departamento: empleado1 empleado2 ...' (todos los empleados del departamento, incluido el propio jefe, en orden alfabético). Los departamentos se ordenan por el nombre del jefe. Si los datos son contradictorios (ciclo, varios jefes), solo se muestra la parte no contradictoria.
Ejemplos
Ejemplo 1
ENTRADA
4
Alice:Bob
Alice:Charlie
Bob:David
Charlie:Eve
SALIDA
Alice: Alice Bob Charlie David Eve
Ejemplo 2
ENTRADA
3
X:Y
Y:Z
Z:X
SALIDA
Ejemplo 3
ENTRADA
2
M:N
M:O
SALIDA
M: M N O
Ejemplo 4
ENTRADA
ab3c2
SALIDA
abababcc
main.py