ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

Турниры > Тренировочный турнир сезона «Зима — 2019» > задача:


P4. Бегущий огонь слева направо в одном ряду

Тренировочный турнир сезона «Зима — 2019»

Старт: 01.янв.2019 в 00:00:00
Финиш: 31.янв.2019 в 23:00:00
Турнир завершён!
• Турнирная таблица

Задачи турнира

• H. Макс и новогодние открытки
• I. Макс и распознавание фигур
• J. Макс и муниципальная задача
• K. СириусЛяндия и страсть к оливкам
• P1. Подбор отрезков ленты для од...
• P10. Бегущие огни в диагоналях
• P2. Подбор отрезков ленты для дв...
• P3. Подбор кусков ленты для ква...
• P4. Бегущий огонь слева напр...
• P5. Бегущий огонь справа налево в...
• P6. Бегущие пары слева направо в...
• P7. Бегущие пары справа налево в...
• P8. Бегущие колонки слева напра...
• P9. Бегущие колонки справа нале...

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/2000/2000/2000 мс. Лимит памяти 65536/65536/65536/65536 Кб.

Бегущий огонь слева направо в одном ряду
Бегущий огонь слева направо в одном ряду
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Каждая светодиодная лента, содержит набор последовательно соединенных светодиодов. На вход ленты подается поток бинарных сигналов с логическими значениями 0 и 1. Каждый светодиод снабжен микросхемой. Микросхема первого светодиода забирает первые 24 бита входного потока (это три байта по 8 разрядов), микросхема второго светодиода – вторые 24 бита и т. д. Этот поток будем называть сигнатурой.

Каждый из трех байтов сигнатуры задает яркость определенного цвета: $$$R$$$ – красный, $$$G$$$ – зеленый, $$$B$$$ – синий. Для создания на ленте из $$$N$$$ светодиодов совокупности светящихся должным образом диодов, необходимо подать на вход сигнатуру длиной 24 * $$$N$$$ бит. Пусть, например, требуется в ленте из 3 светодиодов зажечь белым светом средний светодиод. Белому цвету соответствует максимальное значение числа в каждом из трех байтов цвета: $$$R$$$ = $$$G$$$ = $$$B$$$ = 255. Сигнатура для данного примера будет иметь вид(для читабельности байты разделены пробелами): 00000000 0000000 00000000 11111111 11111111 11111111 00000000 0000000 00000000. В шестнадцатеричном виде эта сигнатура становится еще читабельней: 000000 FFFFFF 000000.

Чтобы создать бегущий огонь, нужно сформировать набор сигнатур. Например, белый бегущий огонь в ленте из трех светодиодов потребует 3 сигнатуры: FFFFFF 000000 000000 000000 FFFFFF 000000 000000 000000 FFFFFF

Программа задачи "Бегущий огонь слева направо" должна генерировать последовательность сигнатур таким образом, чтобы состояние зажигания светодиода заданным цветом перемещалось от одного светодиода к другому слева направо. Считается, что вход ленты находится слева.

Считается, что набор сигнатур передается драйверу, который в соответствии с настройками сам организует периодический процесс и преобразование сигнатур в сигналы.

Входные данные

На вход программы через пробел подаются 4 десятичных числа: число светодиодов в ленте $$$NL$$$ ($$$ 3 \le NL \le 100$$$), яркость красного ($$$0 \le R \le 255$$$), яркость зеленого ($$$0 \le G \le 255$$$) и яркость синего ($$$0 \le B \le 255$$$). На выход выдается $$$NL$$$ сигнатур, по одной на каждой строке в 16-ричном виде.

Выходные данные

$$$NL$$$ строк, каждая из которых содержит соответствующую сигнатуру.

Примеры

Входные данные
4 255 0 0
Выходные данные
FF0000 000000 000000 000000 
000000 FF0000 000000 000000 
000000 000000 FF0000 000000 
000000 000000 000000 FF0000 
Входные данные
3 124 64 25
Выходные данные
7C4019 000000 000000 
000000 7C4019 000000 
000000 000000 7C4019 

Для отправки решений необходимо выполнить вход.

www.contester.ru