Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси абсцисс, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост,
означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись
Повтори k [Команда1 Команда2 … КомандаS]
означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 10 Направо 90 Вперёд 18 Направо 90]
Поднять хвост
Вперёд 5 Направо 90 Вперёд 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 10 Направо 90 Вперёд 7 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
Для решения данной задачи, давайте сначала проанализируем алгоритм, который выполняет Черепаха.
1. **Первый блок команд:**
```
Повтори 2 [Вперёд 10 Направо 90 Вперёд 18 Направо 90]
```
- В первый раз:
- Вперёд 10: Черепаха перемещается из (0,0) в (10,0).
- Направо 90: Теперь Черепаха смотрит вверх.
- Вперёд 18: Перемещается от (10,0) до (10,18).
- Направо 90: Теперь снова смотрит влево.
- Во второй раз:
- Вперёд 10: Перемещается от (10,18) до (0,18).
- Направо 90: Теперь смотрит вниз.
- Вперёд 18: Перемещается от (0,18) до (0,0).
- Направо 90: Теперь снова смотрит вправо.
В результате формируется квадрат с вершинами: (0,0), (10,0), (10,18), (0,18).
2. **Следующий блок команд:**
```
Поднять хвост
Вперёд 5 Направо 90 Вперёд 7 Налево 90
```
- Поднятие хвоста не оставляет следа.
- Вперёд 5: Перемещение от (0,0) до (5,0).
- Направо 90: Черепаха смотрит вверх.
- Вперёд 7: Перемещение от (5,0) до (5,7).
- Налево 90: Теперь смотрит влево.
3. **Последний блок команд:**
```
Опустить хвост
Повтори 2 [Вперёд 10 Направо 90 Вперёд 7 Направо 90]
```
- Опускаем хвост, чтобы снова рисовать.
- В первый раз:
- Вперёд 10: Перемещение от (5,7) до (15,7).
- Направо 90: Смотрит вниз.
- Вперёд 7: Перемещение от (15,7) до (15,0).
- Направо 90: Смотрит влево.
- Во второй раз:
- Вперёд 10: Перемещение от (15,0) до (5,0).
- Направо 90: Смотрит вверх.
- Вперёд 7: Перемещение от (5,0) до (5,7).
- Направо 90: Смотрит вправо.
В результате последнего блока Черепаха рисует еще одну линию, образующую прямоугольник между (5,0), (15,0), (15,7), (5,7).
### Объединение фигур:
Теперь у нас есть:
- Первый квадрат: (0,0), (10,0), (10,18), (0,18).
- Второй обрисованный прямоугольник: (5,0), (15,0), (15,7), (5,7).
Чтобы определить количество целочисленных координат, расположенных внутри объединения этих фигур:
1. **Первый квадрат (0,0) до (10,18)**:
- Ширина: 10 (от 0 до 10).
- Высота: 18 (от 0 до 18).
- Количество точек: 10 (ширина) * 18 (высота) = 180.
2. **Второй прямоугольник (5,0) до (15,7)**:
- Ширина: 10 (от 5 до 15).
- Высота: 7 (от 0 до 7).
- Количество точек: 10 (ширина) * 7 (высота) = 70.
### Учтите пересечения:
Нам нужно убрать пересечения, которые находятся в области от (5,0) до (10,7), так как эта область попадает и в первый квадрат, и во второй прямоугольник.
Эта пересеченная область:
- Площадь: 5 (ширина от 5 до 10) * 7 (высота от 0 до 7) = 35.
### Итоговое количество:
Итак, общее количество точек:
\[ 180 + 70 - 35 = 215 \]
**Ответ: 215 точек с целочисленными координатами находятся внутри объединения фигур, ограниченных заданными алгоритмом линиями.**