Задача D. Найди две единицы Ограничение по времени: 0.5 секунд
Ограничение по памяти: 256 мегабайт
При записи чисел в фибоначчиевой системе счисления в качестве цифр используются только 0
и 1. Будем использовать ноль в записи, если очередное число из последовательности Фибоначчи
(1, 2, 3, 5, 8, 13, 21, . . .) не используется, и единицу — для тех что используются. Тогда, например,
17 = 13 + 3 + 1 = 100101f ib. Для однозначности представления в такой записи не должно быть двух
единиц подряд, иначе, например, 17 = 8 + 5 + 3 + 1 = 11101. Такие числа подлежат нормализации.
Вам требуется в строке, которая является каким то представлением числа в фибоначчиевой
системе, для каждой позиции, кроме последней, найти ближайшее к ней справа место, на котором
стоят как минимум две единицы подряд, и выдать расстояние до него или −1, если, начиная с
текущей позиции, правее двух единиц подряд нет. Например, для строки 10111001101 программа
должна выдать: «2 1 0 0 3 2 1 0 -1 -1».
Причем эффективная по времени программа должна находить ответ с одного цикла,
без использования стандартных функций и методов, работающих за длину строки.
Формат входных данных
На вход программе подается одна строка, состоящая из символов 0 или 1, начинающаяся с 1.
Длина строки N не превосходит 100 000 символов.
Формат выходных данных
Выведите в строку через пробел или в столбец N − 1 число — ответ на задачу для каждой из
первых N − 1 позиций строки.
Примеры
стандартный ввод стандартный вывод
10111001101 2 1 0 0 3 2 1 0 -1 -1
11111 0 0 0 0
Замечание
Как минимум в 40% тестов длина строки не превосходит 1000.
239
314
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
TeamFortres208.06.2020 16:48
-
lohotrontupoy6528.04.2022 21:50
-
Информатик11111110.05.2021 10:38
-
иринка24421.07.2020 20:56
-
ambasaddor27.11.2022 10:36
-
Pool691405.02.2023 22:04
-
Cuba12515.07.2021 14:24
-
sirkovake13.10.2021 01:08
-
сашенька06216.08.2021 02:59
-
анна226227.02.2022 12:59
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.