В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
BvbNo9
BvbNo9
23.04.2020 16:01 •  Информатика

Задача 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.

Показать ответ
Ответ:
2407arinka
2407arinka
04.12.2021 13:44

Ну вот примерно такое. Правда игра на 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

0,0(0 оценок)
Ответ:
снежок345
снежок345
06.03.2022 01:14

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))

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота