import scala.collection.mutable.Queue def timeToInformAllEmployees(ceo: Employee): Int = { val queue = Queue[(Employee, Int)]() // Employee and time taken to inform them // Initialize the queue with the CEO and time 0 queue.enqueue((ceo, 0)) var maxTime = 0 while (queue.nonEmpty) { val (currentEmployee, currentTime) = queue.dequeue() maxTime = currentTime // Update maxTime as we traverse the hierarchy // Enqueue all subordinates with updated time currentEmployee.subordinates.foreach { subordinate => queue.enqueue((subordinate, currentTime + 1)) } } maxTime }