| @@ -0,0 +1,33 @@ | |||
| # flake8: noqa | |||
| import sys | |||
| text = sys.stdin.read() | |||
| pos = 0 | |||
| aim = 1 | |||
| for line in text.splitlines(): | |||
| char, step = line[0], int(line[1:]) | |||
| if char == 'N': pos += step * 1j | |||
| elif char == 'S': pos -= step * 1j | |||
| elif char == 'E': pos += step | |||
| elif char == 'W': pos -= step | |||
| elif char == 'F': pos += step * aim | |||
| elif char == 'L': aim *= 1j ** (step // 90) | |||
| elif char == 'R': aim /= 1j ** (step // 90) | |||
| print(abs(pos.real) + abs(pos.imag)) | |||
| pos = 0 | |||
| way = 10 + 1j | |||
| for line in text.splitlines(): | |||
| char, step = line[0], int(line[1:]) | |||
| if char == 'N': way += step * 1j | |||
| elif char == 'S': way -= step * 1j | |||
| elif char == 'E': way += step | |||
| elif char == 'W': way -= step | |||
| elif char == 'F': pos += step * way | |||
| elif char == 'L': way *= 1j ** (step // 90) | |||
| elif char == 'R': way /= 1j ** (step // 90) | |||
| print(abs(pos.real) + abs(pos.imag)) | |||