Descripción del problema
Todos amamos un Twix (porque es el mejor dulce), pero este es el primer Halloween de los niños --- tenemos que agarrar al menos uno de cada tipo de dulce para ellos. Cada Halloween, todos los residentes de Numberline Avenue envían un correo electrónico diciendo qué tipos de dulces regalarán este año.
Oh! Y vivimos en un mundo 1D.
Siendo excepcionalmente perezosos en algunos aspectos y no en otros, hemos hecho un mapa de las casas dando sus posiciones a lo largo de la calle. También notamos los tipos de dulces que tienen. Aquí está el mapa que hicimos para este año:
[(-2, {"Kisses", "KitKats"}),
(1, {"KitKats", "Peanut Butter Cups"}),
(6, {"Kisses", "Twix"}),
(9, {"Skittles"}),
(10, {"Twix"})]
Por el bien de las patitas de los niños, necesitamos encontrar la caminata más corta que comience en cualquier casa del vecindario para recolectar al menos uno de cada tipo de dulce.
Ejemplos
A petición de un par de usuarios (incluido Shaggy), agregaré algunos ejemplos prácticos. Esperemos que esto aclare las cosas. :) Entrada:
[(-2, {"Kisses", "KitKats"}),
(1, {"KitKats", "Peanut Butter Cups"}),
(6, {"Kisses", "Twix"}),
(9, {"Skittles"}),
(10, {"Twix"})]
Salida:
[1, 2, 3]
Otro mapa y solución ...
Entrada:
[(-3, {"KitKats", "Twix"}),
(-1, {"Hundred Grands"}),
(3, {"Kisses"}),
(12, {"Hundred Grands", "Twix", "KitKats"})]
Salida :
[0, 1, 2]
Podríamos comenzar en la casa de coordenadas 9 recolectando dulces en las casas 6 y 1. Eso llena la cuota de dulces caminando 8 unidades, pero ¿es la solución más corta?
Reglas
Las entradas deben incluir un argumento único estructurado de manera similar al ejemplo y generar los índices de las casas para visitar en la solución más corta.
Se aplican las reglas típicas del código de golf: ¡la solución correcta más corta en bytes gana!
PD: Esta fue una pregunta de entrevista que me hizo una de las compañías tecnológicas más grandes del mundo. Si no le gusta el golf, intente encontrar una solución de tiempo O (k * n) donde k es el número de tipos de dulces yn es el número de casas.
Editar
Como señaló Jonathon Allan, existe cierta confusión sobre lo que significa "índices" en este caso. Queremos generar las posiciones de las casas en la lista de argumentos y no sus coordenadas en el carril.