Марсоход передвигается по поверхности Марса в поисках следов жизни и передает на Землю сигналы о своем перемещении. Вам необходимо определить местоположение марсохода в момент прекращения передачи.
Входные данные
На вход программа получает не более 1000 строк, содержащих одну из следующих команд:
FORWARD N
Передвинуться вперед на N единиц длины.
N — натуральное число, не превосходящее 1000.
Одна единица длины равна 1/4 длины экватора Марса, Марс считается правильным шаром.
RIGHT
Повернуться вправо на 90 градусов.
LEFT Повернуться влево на 90 градусов.
После чего идет команда STOP, указывающая на завершение входных данных.
Выходные данные
Марсоход завершит свой путь в одной из 6 точек. Программа должна вывести номер этой точки в соответствии со списком:
0 Исходная точка
1 Точка, в которую попадет марсоход после выполнения команды
FORWARD 1
2 Точка, в которую попадет марсоход после выполнения команды
FORWARD 2
3 Точка, в которую попадет марсоход после выполнения команды
FORWARD 3
4 Точка, в которую попадет марсоход после выполнения команд
5 Точка, в которую попадет марсоход после выполнения команд
Пример входных данных
RIGHT,
LEFT
FORWARD 2
STOP Пример выходных данных 3
1 Ответ
vect = 0
x = 0
y = 0
f = open(‘инструкции.txt’, «r»)
def move(step:int):
глобальный x,y
если vect == 0:
x += шаг
если vect == 90:
y += шаг
если vect == 180:
x —= шаг
если vect == 270:
y —= шаг
def turn(где):
глобальный вект
если где == ‘левый’:
vect —= 90
еще:
vect += 90
если vect == —90:
vect == 270
если vect == 420:
vect == 90
если vect == 360:
vect == 0
для строки в f:
spl = строка. нижний(). раскалывать()
если len(spl) > 1:
move(int(spl[1]))
elif (spl[0] == ‘левый’) или (spl[0] == ‘правый’)
поворот (линия))
elif spl[0] == ‘stop’:
печатать()
если (x,y) == (0,0):
распечатать(0)
если (x,y) == (1,0):
распечатать(1)
если (x,y) == (2,0):
распечатать(2)
если (x,y) == (3,0):
распечатать(3)
если (x,y) == (0,1):
распечатать(4)
если (x,y) == (0,—1):
распечатать(5)