Задача 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.
Ну вот примерно такое. Правда игра на 1 человека.
import time
name = raw_input ("Как вас зовут?")
print ("Приветствую, %s.") % name
age = raw_input ("Сколько вам лет?")
print ("Начнём же!")
print ("Приветствую, %s.") % (name)
print ("Сегодня у нас проходит игра Правда Или Действие. Если хотите выбрать правду напишите 't' если же действие, то напишите 'd'.")
truth_or_dare = raw_input ("Что вы выбираете?")
while True:
if truth_or_dare == "t":
print ("Расскажите мне свой секрет.")
truth = raw_input ("Какой ваш секрет?")
print ("Надо это запостить везде")
time.sleep(2)
break
elif truth_or_dare == "d":
print ("Загадываю тебе уйти отсюда")
print ("Прощай")
time.sleep(2)
break
else:
print ("Так как вы ничего не выбрали игра завершилась")
break
import random
Question = []
Task = []
print('вводите вопросы, для окончания записи введите "СТОП"')
while 1:
data = input()
if data != 'СТОП':
Question.append(data)
print('вопрос записан')
else:
break
print('вводите задания, для окончания записи введите "СТОП"')
while 1:
data = input()
if data != 'СТОП':
Task.append(data)
print('задание записано')
else:
break
print('Вы в игре!')
while 1:
if input('Правда или действие?:') != 'Действие':
print(random.choice(Question))
else:
print(random.choice(Task))