Problema 5
Robots
robots.pas, robots.c, robots.cpp

Problema
Se dan serie de robots los cuales sólo pueden caminar en los puntos de un “pedazo” acotado del plano cartesiano que tienen la abscisa u ordenada entera. En un principio te dan la posición del robot y una serie de instrucciones y debes de dar la posición final del robot. La posición del robot consiste en una pareja ordenada de enteros no negativos (x, y), hacia donde esta mirando (N, S, E, W para norte, sur, este u oeste), Las instrucciones del robot es una cadena de letras ‘I’, ‘D’ y ‘F’ que representan lo siguiente:
    - Izquierda: el robot voltea 90 grados hacia la izquierda quedándose en el mismo punto.
    - Derecha: el robot voltea 90 grados hacia la derecha quedándose en el mismo punto.
    - Frente: el robot camina una unidad hacia el frente conservando la orientación.
    - Norte: corresponde a la dirección del vector (0,1).
    - Sur: corresponde a la dirección del vector (0,-1).
    - Este: corresponde a la dirección del vector (1,0).
    - Oeste: corresponde a la dirección del vector (-1,0).
Como “pedazo” del plano cartesiano está acotado, puede suceder que el robot sobrepase algún límite cayendo irremediablemente al vacío. Sin embargo, la pérdida de ese robot previene a los siguientes robots diciénloles que en esa coordenada hay peligro de caer al vacío, de tal manera que si a un futuro robot le dan la instrucción de tirarse, la ignorará.

Entrada
La primera entrada será la coordenada de la parte superior derecha del “pedazo” del plano cartesiano, (la parte inferior derecha siempre será (0,0)).
Los siguientes renglones consistirán en las posición inicial, dirección e instrucciones (dos por robot). El primer renglón dará dos enteros (x, y) los cuales indican las coordenadas de la posición inicial del robot, seguidos estos por una letra (N, S, E o W) indicando la dirección. El segundo renglón las instrucciones las cuales van a ser una cadena de caracteres usando solamente las letras I, D o F.
Cada robot podrá comenzar a obedecer las instrucciones cuando el anterior haya acabado las suyas o caído al vacío.
El máximo valor para cualquier entrada de una coordenada es 50. Las instrucciones tendrán un máximo de 100 caracteres.

Salida
Por cada robot deberás indicar en un mismo renglón las coordenadas de su posición final así como su orientación separados por un espacio. En caso de que un robot caiga deberás poner la frase “Muerto en combate” después de indicar su última posición y dirección.

Ejemplo

entrada salida
5 3
1 1 E
DFDFDFDF
3 2 N
FDDFIIFFDDFII
0 3 W
IIFFFIFIFI
1 1 E
3 3 N Muerto en combate
2 3 S

 


Concurso: ICPC - 1 Concurso Interno de la Universidad Bonaterra. 18/Mayo/2001
Tomado de: UVa Online Judge - 118
Ayuda: entradas, salidas, sugerencias
Soluciones: robots.pas, robots.c, robots.cpp


World of πer