| Условие задачи | | Прогресс | Попытки, все/успешные |
|
Темы:
Простые задачи на перебор
Размещением из \(n\) по \(k\) называется массив \(a[1..k]\), содержащий \(k\) различных натуральных чисел, каждое из которых находится в диапазоне от \(1\) до \(n\).
Пара подряд идущих элементов размещения \(a[i], a[i + 1]\) называется спуском, если \(a[i] > a[i+1]\). Спуск называется крутым, если \(a[i] > a[i + 1] + 1\).
По заданным \(n\) и \(k\) требуется вывести все размещения из \(n\) по \(k\) без крутых спусков. Размещения необходимо упорядочить по первому числу, при равенстве первого — по второму, затем по третьему и так далее.
Первая строка ввода содержит натуральное число \(n\), вторая строка ввода содержит натуральное число \(k\) (\(1 \le k \le n \le 13\)).
Выведите все размещения из \(n\) по \(k\) без крутых списков, по одному на строке. Внутри размещения разделяйте числа пробелами.
|
Начать
|
|
24/
4
|
|
Темы:
Задачи на моделирование
Простые задачи на перебор
Шарик и Матроскин чистят дорогу от снега. Дорога разделена на N участков. Для каждого участка известно, сколько минут нужно на его расчистку. Друзья договорились: Шарик чистит первые несколько участков с начала, а Матроскин — оставшиеся с конца. Нужно разделить работу так, чтобы максимальное время работы (у того, кто работает дольше) было минимальным.
Входные данные: В первой строке число N (2 ≤ N ≤ 10). Во второй строке N положительных целых чисел, не превышающих 1000, — время расчистки каждого участка.
Выходные данные: Минимально возможное значение максимального времени работы.
|
Начать
|
|
321/
188
|
|
Темы:
Простые задачи на перебор
Линейная регрессия
Подбор параметров модели (обучение)
Вы работаете с простым датасетом, где нужно предсказать класс (0 или 1) по одному признаку. Например, предсказываем, болен ли человек (1) или здоров (0) по температуре тела.
У вас есть:
Вам нужно найти лучшие значения коэффициента w и свободного члена b методом полного перебора, чтобы минимизировать log-loss.
Алгоритм
- Переберите все возможные значения
w от -2 до 2 с шагом 0.1
- Переберите все возможные значения
b от -10 до 10 с шагом 0.5
- Для каждой пары (
w, b):
- Посчитайте линейную комбинацию: z=w⋅X+b
- Примените сигмоиду: p=σ(z)
- Посчитайте log-loss
- Выберите пару (
w, b) с минимальным log-loss
Важные детали
- Используйте функцию сигмоиды
- Для расчёта log-loss используйте формулу:
- \(\text{Log-Loss} = -\frac{1}{n}\sum_{i=1}^{n} \left(y_i \cdot \log(p_i) + (1 - y_i) \cdot \log(1 - p_i)\right)\)
- Чтобы избежать ошибок с логарифмом нуля, ограничьте вероятности:
p = np.clip(p, 1e-15, 1 - 1e-15)
- Bспользуйте
np.arrange() для работы с вещественным шагом, вместо range()
Формат входных данных
На вход подаётся:
- в первой строке признаки (например, температуры): вещественные числа, разделенные одним пробелом
- во второй строке правильные классы для каждого признака соответственно (0 или 1).
Формат выходных данных
Выведите три числа, каждое в отдельной строке:
-
best_w — лучшее значение коэффициента (float, с точностью до сотых)
-
best_b — лучшее значение свободного члена (float, с точностью до сотых)
-
min_loss — минимальное значение log-loss (float, с точностью 4 знака после запятой)
|
Начать
|
|
45/
20
|
|
Темы:
Простые задачи на перебор
В разведывательное управление доставили сейф с секретной информацией, кодовый замок на котором открывается комбинацией из n цифр, каждая цифра может принимать b различных значений от 0 до b − 1. Код неизвестен, однако разведчики передали несколько донесений о том, что сумма цифр кода в некоторых заданных позициях равна какому-то известному числу. Используя информацию из всех полученных донесений, определите, сколько существует возможных кодов, удовлетворяющих этим условиям.
Формат входных данных
Первая строка входных данных содержит число b — количество различных значений одной цифры кода, 2 ≤ b ≤ 10. Вторая строка содержит число n — количество цифр в коде, n \(\geq\) 1, bn ≤ 60 000. Третья строка содержит число t – количество имеющихся донесений о сумме каких-то цифр кода, t \(\geq\) 1.
Следующие 2t строк содержат информацию об имеющихся донесениях. Каждое донесение состоит из двух строк. Первая из этих строк («маска цифр») содержит n символов, записанных слитно и равных «0» или «1», где цифра «1» обозначает, что в донесении говорится об этой цифре кода. Например, маска цифр «01011» означает сумму цифр, стоящих в коде на 2-й, 4-й и 5-й позициях. Во второй строке донесения записано число s, равное сумме цифр кода, стоящих на данных позициях. Гарантируется, что каждая маска цифр содержит хотя бы одну единицу и что все маски цифр различаются. Общее число донесений может быть любым, удовлетворяющим этим условиям.
Формат выходных данных
Программа должна вывести одно целое число — количество различных кодов, которые удовлетворяют всем донесениям.
Замечание
В примере из условия каждая цифра кода может принимать 8 различных значений от 0 до 7, код состоит из 3 цифр. Получены 2 донесения, из первого донесения известно, что сумма первой и второй цифры кода равна 7, из второго донесения известно, что сумма второй и третьей цифры кода равна 12. Существуют 3 кода, удовлетворяющие этим условиям: «075», «166», «257».
|
Начать
|
|
13/
5
|
ID 58517.
5
Темы:
Простые задачи на перебор
|
Начать
|
|
8/
3
|
|
Темы:
Простые задачи на перебор
В процессе установки турникетов в автобусах, разработчики столкнулись с проблемой проверки подлинности билета. Для ее решения был придуман следующий способ защиты от подделок.
Информация, записанная на билете, кодируется K числами (0 или 1). При этом непосредственно на билете записывается последовательность из N чисел (N>=K) так, что числа, записанные на расстоянии K, совпадают. Таким образом, для проверки подлинности билета достаточно проверить, что все числа на расстоянии K совпадают. К сожалению, при считывании информации с билета иногда могут происходить ошибки — считается, что одно из чисел может исказиться (то есть 0 заменится на 1, или 1 — на 0). Такой билет все равно нужно считать подлинным. Во всех остальных случаях билет считается поддельным.
Напишите программу, которая по информации, считанной с билета, устанавливает его подлинность, и указывает, при считывании какого из чисел могла произойти ошибка.
Входные данные
В первой строке входного файла записаны числа N и K (1<=N<=50000, 1<=K<=1000, K<=N). Во второй строке записано N чисел, каждое из которых является 0 или 1 — информация, считанная с билета.
Выходные данные
В первой строке выходного файла должно быть записано одно из двух сообщений — OK или FAIL (первое сообщение обозначает, что билет признан подлинным, второе — поддельным). В случае, если билет подлинный, во второй строке выведите 0, если все числа были считаны правильно, или номер числа, в котором при считывании произошла ошибка. Если возможных ответов несколько, выведите любой из них (в частности, если для признания билета подлинным можно считать, что ошибок при считывании не было, а можно считать, что была ошибка в одном из чисел — правильным является любой из вариантов ответа).
|
Начать
|
|
8/
1
|
|
Темы:
Простые задачи на перебор
На склад, который имеет форму прямоугольного параллелепипеда, привезли ноутбуки, упакованные в коробки. Каждая коробка также имеет форму прямоугольного параллелепипеда.
По правилам хранения коробки с ноутбуками должны быть размещены на складе с выполнением следующих двух условий:
Стороны коробок должны быть параллельны сторонам склада
Коробку при помещении на склад разрешается расположить где угодно (с выполнением предыдущего условия), в том числе на другой коробке, но все коробки должны быть ориентированы одинаково (т.е. нельзя одну коробку расположить «стоя», а другую – «лежа»)
Напишите программу, которая по размерам склада и размерам коробки с ноутбуком определит максимальное количество ноутбуков, которое может быть размещено на складе.
Входные данные
Вводится шесть натуральных чисел. Первые три задают длину, высоту и ширину склада. Следующие три задают соответственно длину, высоту и ширину коробки с ноутбуком. Каждое из чисел не превышает 1000.
Выходные данные
Выведите одно число — максимальное количество ноутбуков, которое может быть размещено на складе.
|
Начать
|
|
1/
1
|
|
Темы:
Простые задачи на перебор
На базаре есть ряд из N мест, где продаются семечки подсолнечника. Потенциальные покупатели идут вдоль ряда, затем в некоторый момент останавливаются и покупают семечки. Качество семечек от места к месту различается незначительно, так что разницы только в цене семечек и положении места.
Перед тем как выйти на рынок в качестве ещё одного продавца семечек, Вы провели исследование рынка, чтобы найти зависимость числа покупателей от двух названных факторов. Исследование показывает, что большинство покупателей следуют одному и тому же шаблону. Они проходят мимо нескольких мест, замечая и запоминая цены, а затем после обхода K мест, возвращаются к месту с наименьшей замеченной ценой, совершают там покупку, затем покидают базар. Если есть несколько мест с одинаковой ценой, покупатель выбирает ближайшее.
Предположим, что есть пять мест с ценами 37, 34, 34, 35, 33. Если покупатель с K = 4 идёт слева направо, он видит семечки по ценам 37, 34, 34, 35. В этот момент он решает, что видел достаточно, возвращается к третьему месту и покупает семечки там. Хотя на втором месте цена та же, что и на третьем, покупателю до него идти дальше. Если бы тот же покупатель зашёл справа, он бы увидел цены 33, 35, 34, 34, затем остановился и вернулся бы к пятому месту.
Число мест, пройденных до принятия решения (K), является функцией жадности и терпеливости покупателя, и, очевидно, различается у разных покупателей. Исследование выявило средний процент BK покупателей для всех значений K (1 <= K <= N, 0 <= BK <= 99, сумма всех BK равна 100).
Вам следует определить оптимальную стратегию на этом рынке (то есть цену и положение нового места, которое максимизирует ожидаемый средний доход) в предположении, что половина клиентов идёт в направлении от первого места к N-му, а другая половина - от N-го места к первому, и они следуют описанному шаблону.
Входные данные
В первой строке находится число существующих мест N, во второй строке - N целых чисел - цены на каждом месте, в третьей строке - N целых чисел в диапазоне от 0 до 99 - значения BK для каждого K. Все числа в строках разделены пробелами.
Ограничения: 2 <= N <= 100, исходные цены - целые числа от 1 до 9999.
Выходные данные
Выводятся два целых числа - L и P. L (0 < L < N) - это число существующих мест, после которых должно быть размещено новое (Вам не разрешается устанавливать своё место первым или последним). Число P - оптимальная цена. Если существует более чем одно оптимальное решение, Вы должны выбрать решение с минимальным L, а среди них - с минимальным P.
|
Начать
|
|
1/
1
|
|
Темы:
Двумерные массивы
Обход в глубину
Простые задачи на перебор
Андрюше на день рождения подарили хомячка. Пока Андрюша не купил для него клетку, он решил сделать ему клетку из подручных средств. Для изготовления клетки он решил использовать набор кубиков, подаренный ему на прошлый день рождения. Однако, неожиданно выяснилось, что сестра Андрюши склеила кубики суперклеем, и отделить их друг от друга не представляется возможным.
Все кубики оказались склеены в две фигуры. Любые два кубика в каждой из фигур либо не имеют общих точек, либо имеют общую грань, либо имеют общее ребро, но в последнем случае есть кубик, с которым каждый из них имеет общую грань. Каждую фигуру можно положить на стол так, что каждый кубик будет касаться стола одной из своих граней.

Теперь Андрюша хочет положить эти две фигуры на стол так, чтобы получилась клетка для хомячка. Фигуры должны быть положены таким образом, чтобы каждый кубик касался стола гранью. Стороны нижних граней кубиков должны быть параллельны сторонам стола. Любые два кубика, принадлежащие различным фигурам, должны либо не касаться друг друга, либо иметь общую грань, либо иметь общее ребро. Фигуры разрешается поворачивать и переворачивать.
Положив фигуры, Андрюша собирается выпустить хомячка на стол. Чтобы он не упал со стола, у него не должно быть возможности добраться от точки, в которую Андрюша его выпустит, до края стола. Хомячок не может перелезать через кубики, и, в частности, не может пролезть между двумя кубиками, имеющими общее ребро. Стол существенно больше каждой из фигур.
Андрюша хочет, чтобы площадь, по которой может бегать хомячок, была как можно больше. Помогите ему выяснить, какая максимальная площадь может быть у территории, до которой сможет добраться хомячок. Площадь грани кубика будем считать равной единице.

Например, две фигуры, показанные на рисунке выше, можно расположить как показано на следующем рисунке. Если выпустить хомячка в точку, отмеченную стрелкой, то доступная ему территория будет иметь площадь, равную четырем.
Входные данные
В первой строке вводятся два числа: h1 и w1 (1 <= h1, w1 <= 10). Следующие h1
строк содержат по w1 символов и описывают первую фигуру, вид сверху. Каждый из этих символов - либо "*" (звездочка), либо "." (точка), звездочка обозначает кубик, а точка – пустое место.
Далее в отдельной строке вводятся два числа: h2 и w2 (1 <= h2, w2 <= 10). Следующие h2 строк содержат по w2 символов и описывают вторую фигуру в формате, аналогичном формату первой. Каждая из фигур связна и содержит хотя бы один кубик.
Выходные данные
Выведите одно число – максимальную площадь, которая может быть доступна хомячку. Если сделать клетку для хомячка невозможно, выведите 0.
|
Начать
|
|
1/
1
|
|
Темы:
Простые задачи на перебор
Разбор случаев
Витя и Денис играли в игру «Быки и коровы». Витя загадал четырёхзначное число с неповторяющимися цифрами, а Денис пытался это число угадать. Для этого он предлагал свои четырёхзначные числа (тоже с неповторяющимися цифрами), а Витя про каждое из них сообщал, сколько в нём «быков» (т. е. цифр, которые не только присутствуют и в Витином числе, и в числе Дениса, но даже стоят на одних и тех же местах) и «коров» (цифр, которые присутствуют в обоих числах, но стоят на разных местах). У них осталась запись партии (последовательность тестовых чисел и ответов на них), но задуманное число утратилось. Восстановите задуманное число.
Входные данные
Вводится сначала число N—количество четырёхзначных чисел,названных Денисом в одной партии (N < 100).Затем вводятся
N строк, по три числа в каждой. Первое — четырёхзначное число, названное Денисом (оно не начинается с нуля), второе — количество «быков», третье — количество «коров».
Выходные данные
Требуется вывести одно четырёхзначное число, задуманное Витей. Это число не начинается с 0.
Гарантируется, что ответ в задаче существует и является единственным
|
Начать
|
|
2/
2
|
ID 53836.
Тир
Темы:
Простые задачи на перебор
Шесть стрелков решили повысить свою меткость и зашли в тир пострелять. В тире было установлено шесть мишеней, и каждый стрелок выстрелил во все мишени. После чего они собрались в баре, и каждый рассказал, сколько раз он попал в мишень. Бармен, запомнил, что сказал каждый из них, и на следующий день посчитал, сколько дырок в каждой мишени. Требуется помочь бармену определить: не ошибся ли кто-то из "снайперов", и сколько существует вариантов стрельбы (то есть, кто в какие мишень попадал), при которых получаются такие результаты. Считается, что две пули в одну дырку не попадают.
Входные данные
Во входном файле в первой строке для каждого стрелка записано число попаданий, которое он назвал при обсуждении результатов. В третей строке записано число дырок для каждой мишени
Выходные данные
В первой строке - количество вариантов такой стрельбы. Если вариант всего один, то для каждого стрелка вывести строчку, в которой будет для каждой мишени проставлено 0 - не попал, 1 - попал.
|
Начать
|
|
1/
1
|
|
Темы:
Целые числа
Простые задачи на перебор
Входные данные
Вводятся 5 чисел: a, b, c, d и e.
Выходные данные
Найдите все целые решения уравнения ( ax3 + bx2 + cx + d ) / ( x - e ) = 0 на отрезке [0,1000] и выведите их количество.
|
Начать
|
|
1/
1
|
|
Темы:
Простые задачи на перебор
Входные данные
Вводятся 4 числа: a, b, c и d.
Выходные данные
Найдите все целые решения уравнения ax3 + bx2 + cx + d = 0 на отрезке [0,1000] и выведите их в порядке убывания. Если на данном отрезке нет ни одного решения, то ничего выводить не нужно.
|
Начать
|
|
1/
1
|
|
Темы:
Простые задачи на перебор
Линейные алгоритмы
Дан набор из N отрезков различной длины. Сколькими способами можно выбрать из этих отрезков три, из которых можно составить (невырожденный) треугольник?
Входные данные
Сначала вводится количество отрезков, затем длины этих отрезков (еще N чисел).
Выходные данные
Программа должна вывести одно число - искомое количество способов.
Количество отрезков - не менее 3 и не более 20. Длина каждого отрезка - натуральное число, не превосходящее 1000. Все отрезки имеют разную длину.
|
Начать
|
|
2/
1
|
|
Темы:
Простые задачи на перебор
Перестановкой размера \(n\) называется массив \(\langle a_1, a_2, \ldots, a_n \rangle\) различных чисел от \(1\) до \(n\). Каждое число в перестановке встречается ровно один раз.
Сеня называет красотой перестановки \(\langle a_1, a_2, \ldots, a_n \rangle\) число \((a_1a_2 + a_2a_3 + \ldots + a_{n-1}a_n)\). Он хочет посчитать количество перестановок, красота которых делится на \(k\).
Даны числа \(n\) и \(k\), найдите количество перестановок размера \(n\), красота которых делится на \(k\).
Например, для \(n = 3\) существует \(6\) перестановок. Рассмотрим все эти перестановки и их красоту.
| \(\langle 1, 2, 3\rangle\) |
\(1\cdot2 + 2\cdot3 = 8\) |
| \(\langle 1, 3, 2\rangle\) |
\(1\cdot3 + 3\cdot2 = 9\) |
| \(\langle 2, 1, 3\rangle\) |
\(2\cdot1 + 1\cdot3 = 5\) |
| \(\langle 2, 3, 1\rangle\) |
\(2\cdot3 + 3\cdot1 = 9\) |
| \(\langle 3, 1, 2\rangle\) |
\(3\cdot1 + 1\cdot2 = 5\) |
| \(\langle 3, 2, 1\rangle\) |
\(3\cdot2 + 2\cdot1 = 8\) |
Формат входных данных
Входные данные содержат два целых числа: \(n\) и \(k\) (\(1 \le n \le 10\), \(2 \le k \le 1000\)).
Формат выходных данных
Выведите одно целое число: количество перестановок размера \(n\), красота которых делится на \(k\).
|
Начать
|
|
24/
3
|
|
Темы:
Простые задачи на перебор
Даша очень любит представлять числа в виде суммы. Сегодня Даша хочет выписать все возможные представления числа \(n\) в виде суммы \(k\) слагаемых.
При этом она не любит, когда слагаемые меняются слишком быстро. А именно, соседние слагаемые в представлении Даши должны различаться не больше, чем на единицу. Она использует и положительные, и отрицательные, и даже нулевые слагаемые, порядок слагаемых важен.
Выведите все представления, которые подходят по Дашины ограничения. Разбиения следует упорядочить по первому слагаемому, при равном первом слагаемом — по второму, при равных первых двух — по третьему, и так далее.
Формат входных данных
Первая строка ввода содержит число \(n\) (\(-15\le n \le 15\)).
Вторая строка содержит число \(k\) (\(1 \le k \le 15\)).
Гарантируется, что общее число представлений не превышает \(10^5\).
Формат выходных данных
Выводите представления по одному на строке, перед положительными и нулевыми слагаемыми, кроме первого в представлении, выводите знак плюс. Не выводите пробелы.
|
Начать
|
|
17/
1
|
|
Темы:
Условный оператор
Простые задачи на перебор
Дед Мороз решил проверить фабрику игрушек, все ли подарки для детей готовы. Чтобы дойти до места хранения игрушек, ему необходимо пройти по узкому секретному коридору. В коридоре на каждом метре пути указано число метров от двери. У двери, возле которой стоит Дед Мороз, записано число 0. По коридору можно двигаться как влево, так и вправо. При движении влево числа отрицательные, при движении вправо - положительные.
Так как место засекречено, завод постоянно меняет вход в хранилище игрушек.
Дед Мороз знает, что вход в фабрику сегодня расположен у двери с числом X. Также известно, что в коридоре, рядом с числом Y находится дверь, перекрывающая проход по коридору. Чтобы ее открыть необходимо взять ключ, который располагается на стене на полке в коридоре рядом с числом Z.
Определите сможет ли Дед Мороз сам добраться до двери к игрушкам. Если сможет, определите минимальное расстояние, которое необходимо будет пройти Деду Морозу. Если не сможет, то выведите -1.
Входные данные
Программа получает на вход строку, содержащую 3 различных ненулевых числа: X, Y, Z (-103 <= X, Y, Z <= 103).
Выходные данные
Выведите минимальное расстояние, которое необходимо пройти Деду Морозу от двери, у которой он стоит, до двери, за которой расположено место хранения игрушек. Если Дед Мороз не сможет добраться до этой двери, выведите -1.
Примеры
| № |
Входные данные |
Выходные данные |
| 1 |
10 -10 1 |
10 |
| 2 |
20 10 -10 |
40 |
| 3 |
100 1 1000 |
-1 |
|
Начать
|
|
675/
102
|
|
Темы:
"Два указателя"
Использование сортировки
Простые задачи на перебор
Жадный алгоритм
Задача на реализацию
У маленького Миши есть кубики, на каждом из которых написана одна английская строчная буква. Вчера он выкладывал кубики в два ряда. В первом ряду у Миши n кубиков с буквами, во втором - m кубиков с буквами. Так получилось, что в двух этих рядах нет совпадающих букв. Другими словами, ни одна буква не содержится одновременно в обоих рядах.
Сегодня маленький Миша решил продолжить играть с кубиками. Но теперь он берет один любой кубик из какого-либо ряда и составляет из них третий ряд, добавляя кубик всегда в конец. Маленький Миша никогда не берет более k кубиков подряд из одного и того же ряда. Миша закончил играть тогда, когда у него закончились кубики в каком-то одном ряду (в первом или во втором).
Наблюдавший за игрой папа заметил, что играя таким образом у Миши получилась лексикографически наименьшая строка. По известным двум строкам, которые образуются путем прочтения букв первого и второго ряда и числу k определите строку, которую получил маленький Миша.
Строка x лексикографически меньше строки y только и только тогда, когда выполняется одно из следующих условий:
- x является префиксом y, но x != y;
- в первой позиции, где x и y различаются, в строке x находится буква, которая стоит в алфавите раньше, чем соответствующая буква y.
Входные данные
Программа получает на вход несколько строк. В первой строке записаны три числа: n - количество кубиков в первом ряду, m - количество кубиков во втором ряду, k - целое число(1 <= n, m, k <= 100). Во второй строке записана строка a длиной n - строка, образованная прочтением букв, написанных на кубиках первого ряда. В третьей строке - строка b длиной m - строка, образованная прочтением букв, написанных на кубиках второго ряда.
Выходные данные
Выведите ответ на задачу.
Примеры
| № |
Входные данные |
Выходные данные |
| 1 |
6 4 2
aaaaaa
bbbb |
aabaabaa |
|
Начать
|
|
142/
28
|
|
Темы:
Циклы
Цикл for
Простые задачи на перебор
Задача на реализацию
Громозека очень любит валерьянку. На его родной планете Чумароза можно купить за k чумриков (местная валюта) первую упаковку валерьянки, за 2·k чумриков - вторую и так далее (иными словами, за i-ю упаковку надо заплатить i·k чумриков). Громозека хочет купить w упаковок валерьянки. У него есть n чумриков. Сколько чумриков ему придется взять в кредит в чумарозском банке, чтобы купить w упаковок валерьянки?
Входные данные
В первой строке записано три положительных целых числа k, n, w (1 <= k, w <= 1000, 0 <= n <= 109), стоимость первой упаковки, изначальное количество чумарозиков у Громозеки и количество упаковок валерьянки, которые он хочет купить.
Выходные данные
Выведите единственное целое число - количество чумарозиков, которое Громозеке необходимо взять в кредит в банке. Если брать кредит не надо, выведите 0.
Примеры
| № |
Входные данные |
Выходные данные |
| 1 |
3 17 4 |
13 |
|
Начать
|
|
608/
160
|
|
Темы:
Условный оператор
Простые задачи на перебор
Разбор случаев
Ужасная болезнь поражает коров. Фермер Джон хочет их защитить.
Амбар ФД - это узкое длинное здание, содержащее N стойл в ряд (2≤N≤105). Некоторые из этих стойл уже заняты коровами, некоторые - свободны. Прочитав о необходимости социального дистанцирования, ФД хочет максимизировать D, где D, это расстояние между двумя ближайшими занятыми стойлами. Например, если стойла 3 и 8 ближайшие, которые заняты, тогда D=5.
Две новых коровы пополнили стадо ФД и он должен решить, в какое не занятое стойло разместить каждую из них. Определите, ка к он должен разместить этих коров, чтобы в результате D, стало максимальным из возможных. ФД не может передвигать никакую из имеющихся коров, он может только назначить стойла новым коровам.
Входные данные
Первая строка ввода содержит N. Следующая строка содержит строку длиной N из 0 и 1, описывающая последовательность стойл в амбаре. 0 означает пустое стойло, 1 означает занятое стойло. В строке имеется как минимум два нуля, что достаточно для размещения двух коров.
Выходные данные
Выведите наибольше значение D (наименьшее расстояние между двумя занятыми стойлами), которое ФД может получить добавлением двух новых коров оптимальным образом.
Примеры
| № |
Входные данные |
Выходные данные |
|
| 1 |
14
10001001000010 |
2 |
В этом примере ФД может добавить коров так: 10x010010x0010 где x показывает новых коров. В этом случае D=2. Невозможно разметить коров так, чтобы получить D больше. |
|
Начать
|
|
2/
1
|
|