Google Cloud service deployments must start dependencies before the services that rely on them. Given a directed dependency graph, detect whether the graph contains a cycle and return a valid deployment order when it is acyclic.
Implement order_services(dependencies), where dependencies is a dictionary mapping each service name to a list of services it directly depends on. A service may appear only inside another service's dependency list, and should still be included in the graph.
Return a two-element result (has_cycle, order):
(True, []).(False, order), where order contains every service exactly once and each dependency appears before the service that depends on it.def order_services(dependencies):