Автор: | Zokter | Ограничение времени: | 60 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Имеются 3 подключенных к одному контроллеру лампы. Левая (далее Л), средняя (далее С) и правая (далее П)
Каждая из ламп имеет некоторую, неизвестную заранее, яркость. Каждый такт загорается одна лампа, номер которой определяется неизменяющейся последовательностью. Алгоритм определения номера загорающейся лампы смотреть в файле SceneControlScript.cs. После чего у загоревшейся лампы снимается 1 единица яркости.
Вам требуется определить сколько тактов сможет выполняться последовательность, при условии того, что она прекратится как только попытается зажечь лампу с нулевой максимальной яркостью.
Для реализации алгоритма вам предоставляется сцена Unity
, на которой расположены 3 источника света. Взаимодействие с ними реализовано в дополнительном объекте controller
. Код с вашим алгоритмом должен находиться в предусмотренном классе Solution
. Другие изменения в сцене учтены не будут.
controller
предоставляет следующие функции для работы со сценой:controller.Pause()
- останавливает моделирование ("лампочки" перестают зажигаться).controller.Resume()
- запускает моделирование с того же момента на котором оно было остановлено.controller.getCurentTime()
- возвращает количество тактов с начала моделирования.controller.getIntensityOf(int index)
- возвращает оставшуюся яркость лампы по индексу (Л - 0, С - 1, П - 2).controller.getLamps()
- возвращает массив объектов ламп.controller.getLamps().Enabled
- свойство возвращающее true
/false
в зависимости от того горит ли лампа.controller.setAnswer(int answer)
- заканчивает моделирование, записывает в выходной файл переданное в данную функцию значение. (Предполагается что вывод количества тактов будет передан в данную функцию).
Изначально сцена находится на паузе. Моделирование начнется как только вы вызовете controller.Resume()
. Кроме того, лимит горения ламп может быть большим.
Проект
https://github.com/zokter/OldLamps.git
,
Вам осталось реализовать класс Solution
.
Вы можете тестировать свои решения, изменяя данные, содержащиеся в файле input.txt
в коренном репозитории проекта.
Входной файл input.txt
содержит строку состоящую из 3-х чисел, разделенных пробелами, x, y, z - определяющими начальную яркость для каждой из ламп Л, С, П соответственно.
Файл с решением должен содержать реализацию класса Solution
. Количество секунд, полученное вашим решением, должно быть представлено целым числом. Ответ необходимо выводить при помощи controller.setAnswer(int answer)
.
0 ≤ x ≤ 106
0 ≤ y ≤ 106
0 ≤ z ≤ 106
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|