Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Напишите в Blockly программу для робота, который выполняет взвешивание груза весом от 1 до 15, выставляя гири на чашечных весах.
![Весы](48842.png)
После выполнения программы груз на левой чашке должен быть уравновешен набром гирь на правой чашке.
Для управления роботом вы можете использовать следующие команды:
![Команды робота](48847.png)
Первые две команды ставят гирю с указанным номером на чашку весов или убирают её.
Если выполнение команды невозможно, то она игнорируется.
Третья команда позволяет выбрать дальнейшие шаги в зависимости от положения чашек весов или завершить взвешивание,
если вес груза и суммарный вес гирь совпадают.
Первые две команды будем называть действиями, так как при их выполнении происходит перемещение гирь на
чашку весов или на стол, в отличие от третьей команды,
которая делает выбор, но не требует физических действий.
Например, чтобы уравновесить груз с весом 10, нужно выполнить следующие команды:
![Пример программы](48846.png)
Для запуска программы используйте кнопки:
![Кнопки](48841.png)
Первая кнопка позволяет отправить ваше решение для проверки в проверяющую систему соревнований, вторая кнопка выполняет запуск программу локально, третья –
пошаговое выполнение или временная остановка программы, четвертая -- завершение выполнения программы, после которой программа будет выполняться сначала.
Например, после запуска на выполнение программы, показанной выше, состояние весов изменится на следующее:
![Весы](48845.png)
В поле "вес груза" можно задать другой вес груза от 1 до 15.
Например, программа, определяющая вес груза из набора 9,10,11 может выглядеть так:
![Пример программы 2](48844.png)
Последняя команда "Поставить гирю №1" в команде выбора совпадает, поэтому её можно переставить после команды выбора.
![Пример программы 2](48843.png)
Это не уменьшит количество выполняемых действий для уравновешивания груза, только количество команд в программе.
В 3-й подзадаче вы можете попытаться написать программу, которая выполняет не более 7 действий для уравновешивания любого груза весом от 1 до 15.
*Система оценки и описание подзадач*
||.u|Подзадача 1 (30 баллов)||
Вес груза 1, 2 и 3.
В этой подзадаче 3 теста, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
||.u|Подзадача 2 (60 баллов)||
Вес груза от 4 до 15.
В этой подзадаче 12 тестов, каждый тест оценивается в 5 баллов. Баллы за каждый тест начисляются независимо.
Необходимые подзадачи: 1.
||.u|Подзадача 3 (10 баллов)||
В этой подзадаче 1 тест. Программа запускается 15 раз для всех весов груза от 1 до 15.
Количество действий для уравновешивания груза не должно превышать 7.
Необходимые подзадачи: 1,2.
---
Для написания программы для робота используется [специальная версия среды Blockly](blockly/2692.html).
Вы можете использовать полную среду Blockly при решении других задач этого соревнования, выбрав пункт Blockly
в информационном меню задачи.