Graças à comunidade PPCG, o Papai Noel conseguiu remanufaturar todos os seus presentes e, após a linha de montagem, os presentes estão prontos para serem transportados para as docas de transporte!
Cada uma das docas de transporte do Papai Noel tem apenas uma variedade de tamanhos atuais, porque os trenós de transporte são especializados para um tamanho específico (mais leve e seria um desperdício, mais pesado e o trenó não seria capaz de lidar com a carga). Assim, ele precisa de você para ajudá-lo a pegar seus presentes e classificá-los nas docas de transporte corretas.
Desafio
Dada uma lista e os intervalos da doca de transporte, organize os presentes de maneira estável na ordem correta.
Vamos tomar isso por exemplo: os presentes são [5, 3, 8, 6, 2, 7]
e os intervalos de encaixe são [[1, 5] and [6, 10]]
.
Os presentes 5
, 3
e 2
ir para a primeira doca e os presentes 8
, 6
e 7
ir para o segundo dock. Isso pode ser mostrado como [[5, 3, 2], [8, 6, 7]]
. Essa lista estará mais próxima de ser classificada do que a entrada, mas stably
significa que dentro de cada estação, a ordem dos presentes deve ser a mesma da ordem da entrada (caso contrário, você pode classificar a lista inteira).
Sua saída final para este caso seria [5, 3, 2, 8, 6, 7]
(como uma lista simples).
Especificações de formatação
Irá ser dada entrada como uma lista de números inteiros plana e uma lista dos intervalos em qualquer formato razoável (por exemplo, o intervalo para o processo acima pode ser dada como [[1, 5], [6, 10]]
, [1, 5, 6, 10]
ou [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
). Sua saída deve ser uma lista simples de números inteiros em qualquer formato razoável.
A entrada pode conter valores duplicados; Nesse caso, você precisa retornar todas as instâncias delas. Todos os tamanhos atuais estarão exatamente em um intervalo de tamanho e você pode assumir que os intervalos nunca se sobrepõem. Pode haver falhas nos intervalos, desde que todos os tamanhos atuais sejam cobertos.
Regras
- As brechas padrão se aplicam
- Isso é código-golfe , então a resposta mais curta em bytes vence
- Nenhuma resposta será aceita
- Você pode assumir que não haverá intervalos vazios (
[7, 4]
seria inválido porque os intervalos aumentam)
Casos de teste
[1, 2, 3, 4, 5, 6, 7] ; [[1, 3], [4, 7]] => [1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7] ; [[4, 7], [1, 3]] => [4, 5, 6, 7, 1, 2, 3]
[7, 3, 5, 4, 6, 1, 2] ; [[1, 3], [4, 5], [6, 7]] => [3, 1, 2, 5, 4, 7, 6]
[4, 7, 6, 3, 5, 2, 1] ; [[1, 4], [5, 7]] => [4, 3, 2, 1, 7, 6, 5]
[1, 1, 3, 3, 6, 4, 7] ; [[1, 4], [6, 7]] => [1, 1, 3, 3, 4, 6, 7]
Nota: Eu me inspirei para esta série de desafios da Advent Of Code . Não tenho afiliação com este site
Você pode ver uma lista de todos os desafios da série consultando a seção 'Vinculado' do primeiro desafio aqui .