Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Правила новой телевизионной викторины следующие. В ряд расположены \(n\) ячеек, пронумерованных от \(1\) до \(n\), в \(i\)-й ячейке находится \(a_i\) монет.

Игрок может выбрать целое число \(b\) и заплатить \(b\) монет. Тогда ведущий забирает монеты из всех ячеек, где лежит не более \(b\) монет, соответствующие ячейки становятся пустыми. После этого среди любых \(k\) подряд идущих ячеек должно быть не менее \(m\) пустых. После этого игрок забирает все оставшиеся на поле монеты, если он забрал \(a\) монет, его выигрыш составит \(a-b\) монет.

Помогите игроку понять, какое максимальный выигрыш он может гарантировать.

Формат входных данных
На первой строке ввода находятся целые числа \(n\), \(k\) и \(m\) (\(1 \le m < k \le n \le 200\,000\)).

На второй строке находятся \(n\) целых чисел \(a_i\) (\(1 \le a_i \le 10^9\)).

Формат выходных данных
Выведите одно число: какой максимальной выигрыш может гарантировать себе игрок.

Примечание
В первом примере игрок выбирет \(b = 5\). После удаления монет из ячеек, в которых лежит не более чем по \(5\) монет, количество монет в ячейках оказывается равно \([0, 7, 0, 0, 0, 9, 0, 6]\), суммарно он забирает из ячеек \(22\) монеты, с учетом ранее отданных \(5\) монет выигрыш игрока составляет \(17\) монет.

Во втором примере, чтобы добиться, чтобы среди любых двух подряд идущих ячеек была хотя бы одна пустая, игроку приходится выбрать \(b = 2\). После этого монет в ячейках нет, и выигрыш игрока оказывается отрицательным: \(-2\).

Натуральное число \(p\) называется простым, если оно имеет ровно два различных делителя: \(1\) и \(p\). Например, числа \(2\), \(3\), \(5\) являются простыми. Число \(1\) простым не считается.

Целое число \(p\) будем называть квазипростым, если \(p\) или \(-p\) является простым. Например, числа \(-2\), \(2\), \(-3\), \(3\), \(-5\), \(5\) являются квазипростыми.

Хотя любое натуральное число можно единственным образом представить в виде произведения простых, для целых чисел и квазипростых это уже неверно. Например, число \(12\) можно тремя способами представить в виде произведения квазипростых: \(12=2\cdot 2\cdot 3\), \(12=(-2)\cdot 2\cdot (-3)\), \(12=(-2)\cdot (-2)\cdot 3\).

Задано целое число \(n\). Выведите все способы представить \(n\) в виде произведения квазипростых. Произведения, которые отличаются только порядком множителей, считаются одним способом.

Формат входных данных
На первой строке ввода находится число \(n\) (\(-10^9 \le n \le 10^9\), \(n \ne 0\), \(n \ne \pm 1\)).

Формат выходных данных
На первой строке выведите \(k\) — количество способов представить \(n\) в виде произведения квазипростых. В следующих \(k\) строках выведите все способы представить \(n\) в виде произведения квазипростых. Произведения можно выводить в любом порядке, множители в каждом произведении можно выводить в любом порядке.

Штангист готовится к соревнованиям и хочет проанализировать набранную мышечную массу.

Он анализирует записи о своих тренировках за последние \(n\) дней. Для каждого дня ему известна масса тела утром \(x_i\) и масса тела вечером \(y_i\). Также известно, в какие дни штангист проводил тренировку.

Он считает, что в те дни, когда он проводил тренировку, увеличение массы тела, если оно произошло, равно приросту мышечной массы, а если масса тела уменьшалась или тренировки не было, то прирост мышечной массы в этот день равено \(0\).

Помогите штангисту определить суммарный прирост его мышечной массы.

Формат входных данных
Первая строка ввода содержит число \(n\) — количество анализируемых дней (\(1 \le n \le 1000\)).

Вторая строка содержит \(n\) целых чисел, \(i\)-е число равно \(1\), если в \(i\)-й день была тренировка и \(0\), если в \(i\)-й день тренировки не было.

Следующие \(n\) строк содержат результаты измерения массы тела штангиста: по два целых числа \(x_i\) и \(y_i\) — массу тела в граммах (\(30\,000 \le x_i, y_i \le 200\,000\)).

Формат выходных данных
Выведите одно целое число — суммарный прирост мышечной массы штангиста.

Ромб#50344

На клетчатом поле размера \(n \times n\), где \(n = 2k+1\) — нечетное число, необходимо изобразить ромб.

Центром поля будем называть клетку \((k + 1, k + 1)\). Расстояние между двумя клетками \((x_1, y_1)\) и \((x_2, y_2)\) будем называть величину \(|x_1 - x_2| + |y_1 - y_2|\).

Ромб с параметрами \((a, b)\) — это множество клеток, расстояние от которых до центра лежит в диапазоне от \(a\) до \(b\), включительно.

По заданным \(n\), \(a\) и \(b\) изобразите ромб.

Формат входных данных
На первой строке ввода находится целое число \(n\) (\(1 \le n \le 201\), \(n\) нечетно).

На второй строке ввода находится целое число \(a\). На третьей строке ввода находится целое число \(b\) (\(0 \le a \le b\), если \(k\) таково, что \(n = 2k+1\), то \(b \le k + 1\)).

Формат выходных данных
Выведите \(n\) строк по \(n\) символов. Клетка ромба обозначается символом <<*>>, клетка, не лежащая в ромбе, обозначается символом <<.>>.

Робинзон Крузо на необитаемом острове отмечает дни стене своей хижины.

Каждый день он ставит зарубку, которую будем обозначать английской буквой <<I>>, а раз в 5 дней зачеркивает четыре предыдущие зарубки, получая символ, который мы обозначим как <<V>>.

Какая запись получится на стене хижины Робинзона на \(n\)-й день?

Формат входных данных
На ввод подается одно число \(n\) (\(1 \le n \le 10\,000\)).

Формат выходных данных
Выведите запись, которая получится на стене хижины Робинзона на \(n\)-й день.

Миша планирует сделать новый сайт для проведения олимпиад по информатике. Он планирует проводить соревнования в трех дивизионах, чем меньше номер дивизиона, тем задачи в нем труднее.

Для того, чтобы определить, какой участник может участвовать в каком дивизионе, планируется использовать рейтинг. Рейтинг каждого участника — целое число от \(0\) до \(5000\).

Для каждого участника, в зависимости от его рейтинга, определен его базовый дивизион.

  • Участники с рейтингом от \(0\) до \(1600\) имеют в качестве базового дивизиона третий.

  • Участники с рейтингом от \(1601\) до \(1900\) имеют в качестве базового дивизиона второй.

  • Участники с рейтингом более \(1900\) имеют в качестве базового дивизиона первый.

Каждое соревнование может проходить в одном или более дивизионах. Каждый участник участвует ровно в одном дивизионе.

  • Если соревнование проводится в базовом дивизионе участника, он участвует в своем дивизионе.

  • Иначе участник может выбрать, в каком из доступных дивизионов он будет участвовать.

  • При этом если рейтинг участника выше, чем рейтинг всех участников, для которых базовым является дивизион, в котором он участвует, он участвует вне конкурса.

По рейтингу участников и списку дивизионов, в котором проводится соревнование, определите, в каких дивизионах он сможет участвовать, и с каким статусом.

Формат входных данных
Первая строка ввода содержит целое число \(r\) "— рейтинг участника (\(0 \le r \le 5000\)).

Вторая строка ввода содержит от одного до трех различных символов. Каждый из этих символов равен 1, 2 или 3. Символы, которые встречаются во второй строке, показывают, в каких дивизионах проводится соревнование. Дивизионы перечислены в порядке возрастания номера, без пробелов.

Формат выходных данных
Выведите одну или более строк. Для каждого дивизиона, в котором участник сможет поучаствовать, выведите номер этого дивизиона. Если участник может принять участие в этом дивизионе только вне конкурса, выведите после номера дивизиона символ <<*>> (звездочка). Выводите дивизионы в порядке возрастания номера.

В этой задаче 35 тестов, каждый тест оценивается независимо, некоторые тесты оцениваются в 2, а некоторые в 3 балла.

В первом примере участник с первым базовым дивизионом должен участвовать в своем дивизионе.

Во втором примере участник со вторым базовым дивизионом может участвовать и в первом и в третьем дивизионе, но в третьем дивизионе его участие будет вне конкурса.

Валентин выписывает натуральные числа, начиная с 1, в виде лестницы: на первой строке он пишет одно число, на второй — два, на третьей — три, и так далее.

1
2 3
4 5 6
7 8 9 10
...

После этого он стирает все числа на каждой строке, кроме первых \(k\). Если в строке меньше \(k\) чисел, он оставляет их все.

Заданы целые числа \(a\) и \(b\), а также число \(k\). Выведите строки с \(a\)-й по \(b\)-ю, которые получились у Валентина.

Формат входных данных

На ввод подаются три строки: первая содержит число \(a\), вторая содержит число \(b\), третья содержит число \(k\) (\(1 \le a \le b \le 10^9\), \(b - a \le 100\), \(1 \le k \le 100\)).

Формат выходных данных
Выведите строки с \(a\)-й по \(b\)-ю, которые получились у Валентина. Числа в строках разделяйте пробелами.

 

Целое число \(x\) называется свободным от квадратов, если нет такого целого числа \(y > 1\), что \(x\) делится на \(y^2\), то есть \(x = y^2z\) для некоторого целого \(z\).

Даны числа \(l\) и \(r\). Требуется найти число пар целых чисел \((a, b)\), таких что \(l \le a < b \le r\), и числа \(a\), \(b\), а также их произведение \(ab\) свободны от квадратов.

Формат входных данных
На вход подается две строки, первая содержит целое число \(l\), а вторая "— целое число \(r\) (\(1 \le l < r \le 10^9\), \(r - l \le 1000\)).

Формат выходных данных
Выведите одно целое число — искомое число пар.


Примечание
В примере подходят пары \(a = 3, b = 5\), \(a = 5, b = 6\). Число \(4\) не может входить в пару, так как \(4 = 2^2\cdot 1\), а пара \(a = 3, b = 6\) не подходит, так как \(ab = 3\cdot 6 = 18 = 3^2\cdot 2\).

В классе, в котором ведет уроки географии Иван Петрович, \(n\) мальчиков и \(m\) девочек. Иван Петрович рассаживает учеников по по два человека за парту, кроме, возможно, одной парты, за которую приходится посадить одного ученика, если число учеников нечётно.

Иван Петрович заметил, что если за одной партой сидят два мальчика или две девочки, они отвлекаются во время урока. А если за одной партой сидят мальчик и девочка, или за партой сидит один ученик, то они слушают урок внимательно.

Помогите Ивану Петровичу выяснить, какое максимальное число учеников может внимательно слушать урок, если он правильно рассадит их за парты.

Формат входных данных
Первая строка ввода содержит целое число \(n\) (\(0 \le n \le 30\)).

Вторая строка ввода содержит целое число \(m\) (\(0 \le m \le 30\)).

Формат выходных данных
Выведите одно целое число: максимальное количество учеников, которые могут внимательно слушать урок.

 

Примечание
В примере Иван Петрович может посадить за 3 парты мальчика и девочку, и за четвертую парту двух мальчиков, тогда 6 учеников будут внимательно слушать урок.

Рассмотрим разбиения целого положительного числа \(n\) в сумму целых положительных чисел. Будем называть разбиение непростым, если слагаемые в нем упорядочены по неубыванию, причем среди слагаемых нет простых чисел.

Например, для \(n=5\) существует два непростых разбиения: \(1+1+1+1+1\) и \(1+4\).

Задано число \(n\). Выведите все его непростые разбиения на слагаемые.

Формат входных данных
На вход подается число \(n\) (\(1 \le n \le 70\)).

Формат выходных данных
Выведите все непростые разбиения \(n\) на слагаемые. Слагаемые разделяйте знаком <<+>>. Не выводите пробелы. Разбиения можно вывести в любом порядке.

Необходимо изобразить в текстовом формате перекресток двух дорог.

Изображение должно иметь размер \(n \times n\), ширина дорог должна быть \(l\). Центр перекрестка должен быть в центре изображения. Для клеток дороги следует использовать символ <<*>>, для клеток вне дороги символ <<.>>.

Формат входных данных
На первой строке дано целое число \(n\). На второй строке дано первое число \(l\). (\(3 \le n \le 100\), \(1 \le l < n\), \(l\) и \(n\) имеют одинаковую четность)

Формат выходных данных
Выведите \(n\) строк, изображение перекрестка.

50100#50100
Карта Карно - графический способ представления логической функции, составляемый для формирования минимизированной функции в аналитическом виде.
Для логической функции от четырёх переменных f(a, b, c, d) карта составляется следующим образом:
ab
cd
00 01 11 10
00 f(0,0,0,0) f(0,0,0,1) f(0,0,1,1) f(0,0,1,0)
01 f(0,1,0,0) f(0,1,0,1) f(0,1,1,1) f(0,1,1,0)
11 f(1,1,0,0) f(1,1,0,1) f(1,1,1,1) f(1,1,1,0)
10 f(1,0,0,0) f(1,0,0,1) f(1,0,1,1) f(1,0,1,0)

После составления карты в ней выделяют "склейки" - прямоугольные области, удовлетворяющие
двум условиям:
  • все значения истинны;
  • размер области равен 2n, где n - любое натуральное число.
При этом считают, что первый и последний столбец, а также первая и последняя строки расположены "рядом", то есть в них также можно формировать склейки.
Цель формирования склеек - выделить как можно меньшее их число, для этого склейки должны иметь наибольший размер и могут накладываться друг на друга.
Для логической функции от четырёх переменных требуется составить карту Карно, в которой указать разными цифрами формируемые склейки: самые большие для этой функции (по 8 элементов) - цифрой 4, следующие по размеру (по 4 элемента) - цифрой 3, и т.д.

Входные данные
16 строк, составляющие полную таблицу истинности функции. В каждой строке через пробел записаны значения переменных a, b, c, d и значение функции f в виде нулей и единиц (0 - значение ложно, 1 - значение истинно).

Выходные данные
матрица из 4 строк по 4 цифры, записанных через пробел и соответствующих искомым значениям. Цифры могут принимать значения от 0 до 4.
 
Примеры
Входные данные Выходные данные Примечание
1 0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
0 3 3 0
3 3 3 3
0 0 0 0
0 3 3 2
Для заданной функции выделяются склейки во 2-й строке и
в квадрате в первой и последней строках по 4 элемента
(обозначены цифрой 3), а также склейка из двух элементов
в конце 4-й строки. Поскольку она накладывается на
предыдущую склейку, то только второй элемент в ней
обозначен цифрой 2.
2 0 0 0 0 1
0 0 0 1 1
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
3 3 0 0
4 4 4 4
4 4 4 4
0 0 0 0
Для данной функции выделяется склейка во 2-й и 3-й
строках, она состоит из 8 элементов и обозначается
цифрой 4. Также выделяется квадрат из 4-х элементов
(первые 2 в 1-й и 2-й строках), он накладывается на
большую склейку, поэтому только его половина отмечена
цифрой 3.
50095#50095
Для заданного в 10-й с/с дробного числа требуется определить разницу длин целой и дробной части этого числа в 5-й с/с при переводе с точностью до 8 разрядов.
Входные данные
положительное число в 10-й с/с, целая и дробная часть которого не превышают 8 разрядов каждая. Целая и дробная части разделяются точкой. Дробная часть может отсутствовать.
Выходные данные
неотрицательное целое число - разница между количеством разрядов целой и дробной части в пятеричной системе счисления.
Примеры
Входные данные Выходные данные Примечание
1 8.4 1 8.410=13.25, количество разрядов целой части на 1
больше, чем дробной
2 1.5 7 1.510=1.(2)5=1.222222225, в 5-й с/с дробь не имеет
конечного представления, поэтому ограничиваем длину
8 дробными разрядами
Два узла, находящиеся в разных подсетях, имеют IP-адреса 192.168.144.183 и 192.168.249.39. В масках обеих подсетей одинаковое количество единиц. Укажите наименьшее возможное значение третьего слева байта этой маски. Ответ запишите в виде десятичного числа
Два узла, находящиеся в разных подсетях, имеют IP-адреса 243.171.13.52 и 243.171.22.4. В масках обеих подсетей одинаковое количество единиц. Укажите наименьшее возможное значение третьего слева байта этой маски. Ответ запишите в виде десятичного числа
Два узла, находящиеся в разных подсетях, имеют IP-адреса 169.46.190.43 и 169.46.95.229. В масках обеих подсетей одинаковое количество единиц. Укажите наименьшее возможное значение третьего слева байта этой маски. Ответ запишите в виде десятичного числа
Для узла c IP-адресом  253.189.9.182 адрес подсети равен 253.189.8.0. Сколько существует различных возможных значений третьего слева байта маски, если известно, что в этой сети не менее 100 узлов? Ответ запишите в виде десятичного числа.
Для узла c IP-адресом 166.208.9.201 адрес подсети равен 166.208.8.0. Сколько существует различных возможных значений третьего слева байта маски, если известно, что в этой сети не менее 1000 узлов? Ответ запишите в виде десятичного числа.
Для узла c IP-адресом 46.47.8.36 адрес подсети равен 46.47.8.0. Сколько существует различных возможных значений маски, если известно, что в этой сети не менее 200 узлов? Ответ запишите в виде десятичного числа.
Для узла c IP-адресом 31.33.3.178 адрес подсети равен 31.33.0.0. Сколько существует различных возможных значений маски, если известно, что в этой сети не менее 1000 узлов? Ответ запишите в виде десятичного числа.
Поделиться
Класснуть