Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Напишите в Blockly программу для робота, который выполняет взвешивание груза весом от 1 до 10, выставляя гири на чашечных весах.
![Весы](48255.png)
После выполнения программы груз на левой чашке должен быть уравновешен набором гирь на правой чашке.
Для управления роботом вы можете использовать следующие команды:
![width:350px|Команды робота](48260.png)
Первые две команды ставят гирю с указанным номером на чашку весов или убирают её.
Если выполнение команды невозможно, то она игнорируется.
Третья команда позволяет выбрать дальнейшие шаги в зависимости от положения чашек весов или завершить взвешивание,
если вес груза и суммарный вес гирь совпадают.
Первые две команды будем называть действиями, так как при их выполнении происходит перемещение гирь на
чашку весов или на стол, в отличие от третьей команды,
которая делает выбор, но не требует физических действий.
Например, чтобы уравновесить груз с весом 6, нужно выполнить следующие команды:
![Пример программы](48259.png)
Для запуска программы используйте кнопки:
![Кнопки](48254.png)
Первая кнопка позволяет отправить ваше решение для проверки в проверяющую систему соревнований, вторая кнопка выполняет запуск программу локально, третья –
пошаговое выполнение или временная остановка программы, четвертая -- завершение выполнения программы, после которой программа будет выполняться сначала.
Например, после запуска на выполнение программы, показанной выше, состояние весов изменится на
![Весы](48258.png)
В поле "вес груза" можно задать другой вес груза от 1 до 10.
Например, программа, определяющая вес груза из набора 5,6,7 может выглядеть так:
![Пример программы 2](48257.png)
Последняя команда "Поставить гирю №1" в команде выбора совпадает, поэтому её можно переставить после команды выбора.
![Пример программы 2](48256.png)
Это не уменьшит количество выполняемых действий для уравновешивания груза, только количество команд в программе.
В 4-й подзадаче вы можете попытаться написать программу, которая выполняет не более 5 действий для уравновешивания любого груза весом от 1 до 10.
*Система оценки и описание подзадач*
||.u|Подзадача 1 (30 баллов)||
Вес груза 1, 2 и 3.
В этой подзадаче 3 теста, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
||.u|Подзадача 2 (15 баллов)||
Вес груза 5, 6 и 7.
Необходимые подзадачи: 1.
В этой подзадаче 3 теста, каждый тест оценивается в 5 баллов. Баллы за каждый тест начисляются независимо.
||.u|Подзадача 3 (40 баллов)||
Вес груза 4, 8, 9 и 10.
Необходимые подзадачи: 1,2.
В этой подзадаче 4 теста, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
||.u|Подзадача 4 (15 баллов)||
Необходимые подзадачи: 1,2,3.
В этой подзадаче 1 тест. Программа запускается 10 раз для всех весов груза от 1 до 10.
Количество действий для уравновешивания груза не должно превышать 5.
По запросу сообщается результат окончательной проверки на каждом тесте.
---
Для написания программы для робота используется [специальная версия среды Blockly](blockly/2682.html).
Вы можете использовать полную среду Blockly при решении других задач этого соревнования, выбрав пункт Blockly
в информационном меню задачи.