Submeter | Todas submissőes | Melhores | Voltar |
FLECHAS - Número de flechas |
Número de Flechas é um quebra-cabeça. O objetivo é determinar as orientações das flechas posicionadas no perímetro de um tabuleiro quadrado em forma de grade. As pistas do quebra-cabeça são dadas como inteiros escritos dentro de cada quadrado do tabuleiro: cada inteiro indica quantas flechas apontam para aquele quadrado. Flechas podem apontar apenas para uma das oito direções da bússola e sempre devem apontar para pelo menos um quadrado do tabuleiro.
Escreva um programa que, dado um tabuleiro de Número de Flechas, encontra uma solução válida ou diz que não existe solução. A Figura 1 exibe um exemplo que possui solução.
Entrada
A entrada contém vários tabuleiros. A primeira linha da descrição de um tabuleiro contém um único inteiro N indicando o tamanho do tabuleiro. Cada uma das próximas N linhas contém N inteiros, separados por espaços, correspondendo aos números escritos nos quadrados do tabuleiro.
Há uma linha em branco após cada descrição de tabuleiro.
A entrada termina com uma linha contendo 0 (N = 0). Esta linha não deve ser processada.
Restrições
1 <= N <= 8
Cada número do tabuleiro possui valor entre 0 e 8 (inclusive).
Saída
Para cada tabuleiro, a primeira linha da saída deve ser "Instancia #I:", onde I é o índice do tabuleiro na entrada, começando de 1.
Se o tabuleiro não tem solução, a próxima linha da saída deve ser sem solucao. Se o tabuleiro tem uma solução, as próximas N + 2 linhas da saída devem descrever a solução (todas as instâncias terão solução única). A saída deve ser formatada como uma grade (N + 2) x (N + 2). Cada célula da grade deve ter espaço para dois caracteres, alinhamento a direita e as células são separadas por espaços.
As N x N células centrais devem conter os números do tabuleiro original. As 4N células da borda devem conter as orientações das flechas, impressas como direções da bússola exibidas na Figura 2. Os quatro cantos devem conter apenas espaços em branco (em particular, a primeira e a última linha da saída devem conter espaços em branco no início e no final).
Há uma linha em branco após cada saída.
Exemplo de entrada
3 5 2 5 3 0 1 4 3 4 2 0 0 0 0 4 4 3 3 0 7 3 3 2 5 3 3 2 3 1 3 0 0
Saída para o exemplo de entrada
Instancia #1: S SE S E 5 2 5 W NE 3 0 1 NW E 4 3 4 W N NE NW Instancia #2: sem solucao Instancia #3: S SW SW SW SE 4 3 3 0 SW NE 7 3 3 2 W NE 5 3 3 2 W NE 3 1 3 0 NW N NW N NW
Adicionado por: | Wanderley Guimarăes |
Data: | 2009-08-31 |
Tempo limite: | 4.146s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO PERL6 PY_NBC SCALA TCL |
Origem: | Segunda Seletiva para Maratona de Programacao IME-USP - 2008 |
hide comments
2018-07-18 20:32:56 Alexandre de Souza Serrano
Num aprendi a fazer nem na mão kkkkkkkkk |
|
2009-09-11 14:35:35 Carlos Eduardo Rodrigues Alves [USJT]
Este é um puzzle frequente no World Puzzle Championship! Para estudá-lo (e se divertir), veja o link a seguir: http://www.janko.at/Raetsel/Pfeilzahlen/index.htm No mesmo site, há pilhas de outros puzzles que podem ser resolvidos no computador. No caso deste puzzle, recomendo a resolução no papel, para fazer marcações úteis. Meu programa se baseia em técnicas "humanas" de resolução. |