A entrada consiste em i linhas com informações de vizinhos. Cada i th linha contém 4 valores, representando o vizinho de i para os norte , leste , sul e oeste direções, respectivamente. Assim, cada valor representa um vizinho na direção dada do i th linha, a partir de linha 1, e pode ir até 65.535 linhas. O valor 0 indica nenhum vizinho nessa direção.
Por exemplo, se a primeira linha for "0 2 3 10", significa que o vizinho i tem três outros vizinhos: ninguém ao norte, vizinho 2 ao leste, vizinho 3 ao sul e vizinho 10 ao oeste.
Você precisa gerar a matriz de vizinhos, começando pelo valor mais ao noroeste. Cada vizinho será exibido apenas uma vez, em sua posição em relação aos outros. Vamos ver alguns exemplos:
Entrada:
0 0 0 0
Sem vizinhos (caixa vazia), saída:
1
Entrada:
0 2 0 0
0 0 0 1
1 tem o vizinho 2 ao leste. 2 tem o vizinho 1 a oeste
Resultado:
1 2
Entrada:
0 2 0 0
0 0 3 1
2 0 0 0
1 tem o vizinho 2 ao leste. 2 tem o vizinho 1 ao oeste e 3 ao sul. 3 tem vizinho 2 ao norte
Resultado:
1 2
3
Entrada:
2 0 0 0
0 0 1 0
Resultado:
2
1
Entrada:
0 2 3 0
0 0 4 1
1 4 0 0
2 0 0 3
Resultado:
1 2
3 4
Regras:
Os casos de teste são separados por uma linha vazia . A saída de diferentes casos de teste também deve ser separada por uma linha vazia.- O gráfico de saída está sempre conectado. Você não terá apenas 1 vizinho para 2, juntamente com 3 vizinhos para apenas 4 (isolado do componente 1-2).
- Todas as entradas são válidas. Exemplo de entradas inválidas:
- Entradas contendo letras ou qualquer símbolo diferente de espaços, quebras de linha e dígitos (0 a 9).
- o i th linha que contém o i th valor (porque não se pode ter o seu próprio vizinho).
- um valor negativo ou superior a 65.535.
- Menos de quatro valores seguidos.
- Mais de quatro valores seguidos.
- O mesmo vizinho apontando para duas direções diferentes (ex: 0 1 1 0).
As brechas padrão se aplicam e a resposta mais curta em bytes vence.
fonte
1,2,...
. Eu achava que eles tinham um vizinho 2 "unidades" ao leste, e 1 "unidade" ao sul e assim por diante. Não conseguia entender o sentido.Respostas:
Python 2 , 152 bytes
Experimente online!
A ordem de entrada
NESW
f
é uma função recursiva para preencher as casasfonte
JavaScript (Node.js) , 135 bytes
Experimente online!
_______________________________________________________________
Segunda abordagem
JavaScript (Node.js) , 130 bytes
Experimente online!
fonte