Задача #1355
Исполнитель Черепаха
(С. Чайкин) Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x+a, y+b). Если числа a, b положительные, то значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (4, 2), то команда Сместиться на (2,-3) переместит Чертёжника в точку (6,-1). Запись
Повтори k раз
Команды
конец
означает, что последовательность Команды повторятся k раз. Чертёжнику был дан для исполнения следующий алгоритм:
Повтори 3 раз
Сместиться на (15, 37)
Сместиться на (-40, -35)
Сместиться на (-22, 32)
Сместиться на (47, -34)
конец
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии следует учитывать.
Решение
Ответ
def f(x, y):return y >= 37 / 15 * x and \y <= 35 / 40 * (x - 15) + 37 and y >= -34 / 47 * (x + 47) + 34def g(x, y):return y >= 35 / 40 * (x - 15) + 37 and \y <= -34 / 47 * (x + 47) + 34 and y >= -32 / 22 * (x + 47) + 34k = sum(f(x, y) or g(x, y)for x in range(-10**2, 10**2)for y in range(-10**2, 10**2))print(k)