Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_задачи_фильтрованные.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
77.31 Кб
Скачать

Задача 8*

Рассмотрим следующую последовательность двоичных строк:

S1 = 0; S2 = 01; S3 = 0110; · · · Sn+1 = Sn inv(Sn),

где inv(x) — операция инвертирования строки x, то есть замены всех нулей единицами и наоборот. Очевидно, что каждая строка в этой последовательности есть начало следующей строки. Таким образом, всякий раз дополняя строку результатом применения к ней операции инвертирования, можно получить такую бесконечную цепочку нулей и единиц, что любая строка Sn есть ее начало. Обозначим эту бесконечную цепочку S.

Для заданной двоичной строки T длиной от 1 до 32000 двоичных цифр требуется определить наименьшую позицию вхождения T в S, то есть найти наименьшую длину такой строки K, что KT есть начало S. При этом если T есть начало S, то позиция вхождения есть 0, если T встречается в S, начиная со второго символа, то позиция вхождения есть 1, и так далее.

Во входном файле находится не более 32000 символов 0 или 1, составляющих строку T. При этом все символы, отличные от 0 и 1, например, пробелы и переводы строки, могут встречаться в любых количествах, и при чтении входного файла их необходимо игнорировать.

В выходном файле в единственной строке должен находиться результат: наименьшая позиция вхождения T в S или слово NO, если T не встречается в S.

Пример:

Входной файл

Выходной файл

0011

5

Задача 21*

N гангстеров идут в ресторан. i-тый гангстер заходит в Ti-е время и имеет при себе Pi денег. Дверь ресторана имеет k+1 стадий открытия, выраженных в целых числах от 0 до k. Состояние открытия может измениться на 1 в единицу времени, т.е. либо открыться на 1, либо закрыться на 1, либо остаться прежним. В начальный момент состояние двери закрытое = 0.

i-тый гангстер может войти в ресторан, если дверь открыта специально для него, т.е. состояние двери совпадает с шириной его плеч Si. Если в момент времени, когда гангстер подошел к ресторану, состояние открытия двери не совпадает с шириной его плеч, то он уходит и никогда не возвращается. ресторан работает в интервале времени [0, T].

Цель: собрать в ресторане гангстеров с максимальным количеством денег.

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

  • первая строка входного файла содержит значения N, R и T, разделенные пробелами (1  N  100, 1  K  100, 0  T  30000 );

  • вторая строка содержит моменты времени, в которые гангстеры подходят к ресторану T1, T2, ... , TN, разделенные пробелами (0  Ti  T для i = 1, 2. ..., N);

  • в третьей строке записаны суммы денег каждого гангстера P1, P2, ... , PN, разделенные пробелами ( 0  Pi  300, для i = 1, 2. ..., N);

  • четвертая строка содержит значения ширины плеч каждого гангстера, разделенные пробелами (0  Si  K для i = 1, 2. ..., N).

Все значения целые.

Выходные данные: В выходной файл выдать одно целое число — максимальное значение достатка всех гангстеров, собранных в ресторане. Если ни один гангстер не может попасть в ресторан, выдать 0.

Пример 1

Вход: Выход:

4 10 20 26

10 16 8 16

10 11 15 1

10 7 1 8

Пример 2

Вход: Выход:

2 17 100 0

5 0

50 33

6 1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]