uCoder | 1320 | Nível: 4 | Tempo Limite: 5
Logística de Container
Adaptado por Erich Rodrigues
Competição: Interfatecs 2017 1ª Fase
Você acabou de ingressar na equipe de TI da empresa WA Exportações, a qual trabalha com exportações para empresas brasileiras. Uma empresa que queira exportar seus produtos deve colocar seus produtos em caixas e enviá-las para o Porto de Santos, onde atua a WA Exportações. Tais caixas são colocadas sobre Pallets (suporte de madeira) e acomodadas em Containers para serem transportados pelos navios. Cada Container tem 8 metros de comprimento. Os Pallets variam de 1, 2, 3 e 4 metros de comprimento. Para simplificar vamos assumir que os Pallets possuem a mesma largura e altura dos Containers.
A WA Exportações possui uma cota de 50 Containers e a logística de preenchimento dos Containers é a seguinte: cada Pallet recebe um número sequencial de identificação, iniciando em 1, e de acordo com seu comprimento é colocado no primeiro Container onde couber. Os Containers também possuem uma numeração sequencial iniciando em 1. Um novo Container é utilizado quando o anterior já está totalmente preenchido ou quando o Pallet a ser acomodado não cabe totalmente no Container atual. A Figura 1 ilustra o preenchimento dos Containers de acordo com a sequência de entrada do Exemplo 1. O número dentro do círculo é a identificação de cada Pallet dentro do Container, e recebe esta identificação de acordo com a ordem de chegada. O comprimento de cada Pallet (1, 2, 3 ou 4 metros) é mostrado no lado externo do Container e corresponde ao comprimento indicado na entrada.
Um problema enfrentado pela empresa é a identificação do Container que contém um determinado Pallet depois que os mesmos já foram alocados. Seu “teste de batismo” na empresa será criar um sistema que, dado o número de sequência de um Pallet, dizer em qual Container ele foi alocado e também mostrar quais Pallets devem ser retirados para chegar até o Pallet procurado. Note ainda que os Pallets só podem entrar e sair do Container pela porta dianteira, indicada na Figura 1 pela seta.
Entrada
A primeira linha da entrada contém até 400 números, cada qual indicando o comprimento de um Pallet (1, 2, 3 ou 4 metros), e separados por um espaço em branco. O conjunto de pallets sempre caberá nos 50 containers disponíveis. Cada uma das próximas linhas contém um número inteiro N (1 ≤ N ≤ 400), indicando o número de sequência de um Pallet procurado.
Saída
Para cada Pallet procurado, imprima na saída o número do Pallet procurado, o número do Container e o número dos Pallets que devem ser retirados para se ter acesso ao Pallet dentro do Container. Imprima a palavra TOPO para indicar que não existem Pallets obstruindo o acesso ao Pallet procurado. Note que existe um espaço entre cada palavra e valor apresentado na saída. Finalize cada linha, inclusive a última, com uma quebra de linha.
Exemplo de Entrada | Exemplo de Saída |
---|---|
4 4 3 3 3 2 2 2 2 |
Pallet 3 Container 2 Retirar 6 4 |
3 3 3 3 1 1 2 3 3 |
Pallet 5 Container 1 Retirar 6 |
1 2 1 3 2 1 2 1 2 1 3 1 2 3 1 1 1 |
Pallet 9 Container 2 Retirar 10 |