Created
August 9, 2012 18:13
-
-
Save tucaz/3306694 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A Sonda Marciana | |
Regras | |
O problema descrito abaixo requer alguma forma de entrada de dados. Você está livre pra implementar qualquer mecanismo de entrada de dados que desejar na sua solução (dados hard coded dentro de um test unitário, por exemplo). | |
Você deve prover evidência suficiente de que sua solução está completa para, no mínimo, indicar que funciona corretamente para o consjunto de dados de testes fornecidos. | |
Recomendamos que você utilize um framework de testes como NUnit ou MSTest. Mesmo que você não tenha os utilizado antes, são fáceis de aprender e incrivelmente uteis. | |
O código que você escrever deve ter qualidade de “ambiente de produção” e mais importante que isso, deve ser um código do qual você se orgulhe. | |
O programa | |
Um esquadrão de sondas robóticas da NASA irá pousar numa planície em Marte. | |
Essa planície, que é curiosamente retangular, deve ser navegada pelas sondas para que suas cameras on-board consigam capturar uma visão completa do terreno em volta para mandar as imagens de volta a Terra. | |
A posição de uma sonda é representada pela combinação de coordenadas X e Y e uma letra representando um dos quatro pontos cardeais de um compasso: (N)orte, (S)ul, (L)este e (O)este. A planícia é dividida em um grid para simplificar a navegação. O exemplo de uma posíção pode ser 0, 0, N, o que significa que a sonda está no canto inferior esquerdo direcionada (com sua orientação) para o Norte. | |
Para controlar uma sonda a NASA envia simples caracteres. Os caracteres possíveis são ‘E’, ‘D’ e ‘A’. | |
‘E’ e ‘D’ fazem a sonda girar 90 graus a esquerda ou direita respectivamente, sem se mover da posição atual. ‘A’ faz com que a sonda ande um ponto para frente mantendo a orientação. | |
Assuma que o primeiro ponto a Norte diretamente a partir de (X, Y) seja (X,Y+1). | |
Entrada de Dados | |
A primeira linha de input é referente as coordenadas do canto superior direito da planície. As coordenadas do canto inferior esquerdo são 0,0. | |
O restante do input refere-se as sondas que foram enviadas. Cada sonda tem duas linhas de input. A primeira linha fornece as coordenadas da posição inicial da sonda e a segunda linha é uma série de instruções informando a sonda como explorar a planície. | |
A posição é feita de dois inteiros e uma letra, separados por espaço, correspondente as coordenadas X e Y e a orientação da sonda. | |
Cada sonda será finalizada em sequência, o que singnifica que a segunda sonda não irá se mover até que a primeira tenha terminado de se mover. | |
Saida de Dados | |
A saida de dados para cada sonda deve ser suas coordenadas finais e orientação. | |
Input de Teste | |
5 5 | |
1 2 N | |
EAEAEAEAA | |
3 2 L | |
AADAADADDA | |
Saida esperada | |
1 3 N | |
5 1 L |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sim. Foi um erro acidental, mas é bom pra ver se quem resolve está atento e consegue apontar o erro :)