Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Обозначим через \(ДЕЛ(n, m)\) утверждение «натуральное число \(n\) делится без остатка на натуральное число \(m\)»; и пусть на числовой прямой дан отрезок \(B = [50; 60]\)Для какого наибольшего натурального числа \(А\) формула
\(ДЕЛ(x, A) \lor ((x \in B) \rightarrow \neg ДЕЛ(x, 13))\) 
тождественно истинна (т.е. принимает значение 1) при любом натуральном значении переменной \(x\)?
 
Определите в 37-ричной записи числа количество цифр с числовым значением, превышающим 17.
\(9 \cdot 4492^{2016} + 10 \cdot 4705^{2020} + 6 \cdot 4801^{2013} - 9 \cdot 4103^{2015} - 1 \cdot 3073^{2007} + 5 \cdot 4121^{2011}. \)
В терминологии сетей TCP/IP маскойсети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IP-адресом 190.31.16.0 и маской сети 255.255.248.0.
Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса кратна 7?

В ответе укажите только число.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
 
Цикл
ПОКА  условие 
         последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ  условие
     ТО команда1
     ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
 
Дана программа для Редактора:

НАЧАЛО
ПОКА нашлось (19) ИЛИ нашлось (49) ИЛИ нашлось (999)
    ЕСЛИ нашлось (19)
      ТО заменить (19, 9)
    КОНЕЦ ЕСЛИ
    ЕСЛИ нашлось (49)
       ТО заменить (49, 91)
    КОНЕЦ ЕСЛИ
    ЕСЛИ нашлось (999)
       ТО заменить (999, 4)
    КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

 
На вход приведённой выше программе поступает строка, начинающаяся с цифры «1», а затем содержащая n цифр «9» (3  <  n <  10 000).
Определите наибольшее возможное значение суммы числовых значений цифр в строке, которая может быть результатом выполнения программы.

 
При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 113 символов и содержащий только десятичные цифры и символы из 3081-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит.
Определите объем памяти (в Кбайт), необходимый для хранения 8192 идентификаторов. 
В ответе запишите только целое число - количество Кбайт. 
C помощью текстового редактора определите, сколько раз встречается сочетание букв «труд» или «Труд» только в составе других слов, но не как отдельное слово, в тексте повести А.И. Куприна «Поединок». В ответе укажите только число.

Файл к заданию
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены оба условия:
– в строке есть одно число, которое повторяется в строке трижды, остальные четыре числа различны;
– повторяющееся число не является ни максимальным, ни минимальным числом строки.
В ответе запишите только число.


Файл к заданию
Определите количество пятизначных чисел, записанных в девятеричной системе счисления, в записи которых ровно одна цифра 3, при этом никакая из цифр 5, 6, 7, 8 не стоит рядом с цифрой 3.
Для хранения сжатого произвольного растрового изображения размером 192 на 960 пикселей отведено 100 Кбайт памяти без учёта размера заголовка файла. Файл оригинального изображения больше сжатого на 25%. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Какое максимальное количество цветов можно использовать в изображении?
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен.
При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения.
У исполнителя существует 6 команд: Поднять хвост, означающая переходк перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n?–?целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n?–?целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m?–?целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m?–?целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.

Черепахе был дан для исполнения следующий алгоритм.

Повтори 2 [Вперёд  14 Направо 90 Вперёд 18 Направо 90]
Поднять хвост
Вперёд 12 Направо 90 Вперёд 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 10 Направо 90 Вперёд 7 Направо 90]


Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
 
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются две последние троичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 11 = 1023 результатом является число 1021013 = 307, а для исходного числа 12 = 1103 это число 110103 = 111.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 159.

По каналу связи передаются сообщения, содержащие только буквы: Ч, Ь, И, К, О, Л. Для передачи используется двоичный код, удовлетворяющий условию Фано. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Кодовые слова для некоторых букв известны: Ч - 00, Ь - 011, И - 0100.

Для оставшихся букв К, О, Л кодовые слова неизвестны. Какие наименьшее количество двоичных знаков требуется для кодирования слова КОЛОКОЛЬЧИК?

Примечание. Условие дано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

В файле приведён фрагмент базы данных «Кондитерские изделия» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой половины июня 2023 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. внесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня.
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. 
Таблица «Магазин» содержит информацию о местонахождении магазинов.

На рисунке приведена схема указанной базы данных.


Используя информацию из приведённой базы данных определите, сколько килограммов Мыла детского поступило в магазины Промышленного района за период со 2 по 14 августа включительно.

Файл к заданию

Даны две строки \(S\) и \(T\) из строчных букв английского алфавита.

Посмотрим на следующий процесс. Рассмотрим не более одного раза каждый символ, хотя бы где-то входящий в первую строку. После чего, для рассматриваемого символа \(x\) определим другой символ \(p(x) \neq x\) и заменим некоторые вхождения \(x\) в \(S\) на \(p(x)\). Определите, возможно ли в ходе такого процесса получить из строки \(S\) строку \(T\). При этом разные символы можно заменять на один и тот же символ или на символ, который заменяться не будет.

Например, пусть \(S =\) <<aabab>>, \(T =\) <<abbbc>>. Из \(S\) можно получить \(T\), если выбрать p(‘a’) = ‘b’, p(‘b’) = ‘c’ и заменить второе и третье вхождение ‘a’ на p(‘a’), второе вхождение ‘b’ на p(‘b’).

А если \(S =\) <<aabaс>>, \(T =\) <<bbbbb>>, то все вхождения ’a’ и ’c’ были заменены на ’b’.

Формат входных данных
В первой строке вам дано число \(n\) \((1 \leqslant n \leqslant 200\,000)\). Во второй строке задана \(S\). В третьей строке задана \(T\). Обе строки имеют длину \(n\) и состоят только из букв от ‘a’ до ‘z’.

Формат выходных данных
Если возможно осуществить описанный процесс так, чтобы из \(S\) получилась \(T\), выведите <<YES>>, на следующей строке выведите \(m\) – количество различных символов \(S\), которые хотя бы раз заменялись. Обозначим эти символы за \(c_1,\ c_2,\ \ldots \ c_m\). После чего выведите \(m\) строк. На \(i\)-й строке необходимо вывести символы \(c_i\) и \(p(c_i)\) через пробел. Если это сделать невозможно, выведите <<NO>>.

 

В знаменитом магазине <<Двоечка>> продукты продаются всего два дня в неделю — понедельник и вторник — причём в разные дни по разным ценам. Вы захотели купить \(n\) килограммов картофеля на неделю. По понедельникам один килограмм картофеля стоит \(a\) рублей, а по вторникам — \(b\) рублей. Чтобы упростить работу кассирам, в <<Двоечке>> можно покупать только целое число килограммов.

Вам крупно повезло, ведь в <<Двоечке>> проходит акция: каждый понедельник за каждые \(m\) килограммов купленного картофеля дарят ещё один!

Найдите минимальную сумму, за которую можно приобрести хотя бы \(n\) килограммов картофеля на неделю.

Формат входных данных
В первой строке вводится целое число \(a\) \((1 \leqslant a \leqslant 10^9)\) — цена одного килограмма картофеля в понедельник.

Во второй строке вводится целое число \(b\) \((1 \leqslant b \leqslant 10^9)\) — цена одного килограмма картофеля во вторник.

В третьей строке вводится целое число \(n\) \((\mathbf{1 \leqslant n \leqslant 10^6})\) — желаемое количество килограммов картофеля.

В четвертой строке вводится целое число \(m\) \((1 \leqslant m \leqslant 10^6)\) — количество килограммов картофеля, участвующее в акции.

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

Обратите внимание, что ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#). Язык Python будет корректно работать и с типом int.


Примечание

В первом примере выгодно купить один килограмм в понедельник за 5 рублей, получить еще один килограм в подарок и купить килограмм во вторник за 4 рубля. Купить три килограмма дешевле не получится.

Во втором примере выгодно купить три килограмма в понедельник и получить один килограмм в подарок.

В третьем примере акцией пользоваться невыгодно.

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

В знаменитом магазине <<Двоечка>> продукты продаются всего два дня в неделю — понедельник и вторник — причём в разные дни по разным ценам. Вы захотели купить \(n\) килограммов картофеля на неделю. По понедельникам один килограмм картофеля стоит \(a\) рублей, а по вторникам — \(b\) рублей. Чтобы упростить работу кассирам, в <<Двоечке>> можно покупать только целое число килограммов.

Вам крупно повезло, ведь в <<Двоечке>> проходит акция: каждый понедельник за каждые \(m\) килограммов купленного картофеля дарят ещё один!

Найдите минимальную сумму, за которую можно приобрести хотя бы \(n\) килограммов картофеля на неделю.

Формат входных данных
В первой строке вводится целое число \(a\) \((1 \leqslant a \leqslant 10^9)\) — цена одного килограмма картофеля в понедельник.

Во второй строке вводится целое число \(b\) \((1 \leqslant b \leqslant 10^9)\) — цена одного килограмма картофеля во вторник.

В третьей строке вводится целое число \(n\) \((1 \leqslant n \leqslant 10^9)\) — желаемое количество килограммов картофеля.

В четвертой строке вводится целое число \(m\) \((1 \leqslant m \leqslant 10^9)\) — количество килограммов картофеля, участвующее в акции.

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

Обратите внимание, что ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#). Язык Python будет корректно работать и с типом int.


Примечание

В первом примере выгодно купить один килограмм в понедельник за 5 рублей, получить еще один килограм в подарок и купить килограмм во вторник за 4 рубля. Купить три килограмма дешевле не получится.

Во втором примере выгодно купить три килограмма в понедельник и получить один килограмм в подарок.

В третьем примере акцией пользоваться невыгодно.

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

Логическая функция F задана выражением  \(({w} \equiv \bar{x}) \rightarrow (z \equiv ({w \land y}))\).

Ниже приведен частично запоненный фрагмент таблицы истинности этого выражения, который содержит неповторяющиеся строки. 

        F
  1 1   0
  1   1 0
1 1 1   0

Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.

В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

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

Пусть есть две строки, описывающие решения. Рассмотрим не более одного раза каждый символ, хотя бы где-то входящий в первую строку. После этого для рассматриваемого символа \(x\) определим другой символ \(p(x) \neq x\) и заменим некоторые вхождения \(x\) в первое решение на \(p(x)\). Если в ходе такого процесса из первого решения возможно получить второе, то скажем, что второе решение списано с первого.

Иными словами, участник копирует чужое решение и, чтобы списывание не было таким очевидным, один раз рассматривает некоторые различные символы \(x\), которые хотя бы раз встречаются в первом решении. Для каждого такого символа \(x\) он выбирает, на какой другой символ \(p(x)\) он будет заменять его вхождения, после чего проходит по строке и заменяет в ней \(x\) на \(p(x)\), но на некоторых позициях забывает это сделать (или там замена невозможна).

Значения \(p(x)\) участником выбираются независимо для разных \(x\), поэтому они могут и совпасть.

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

Кроме платформы вы создали язык программирования S++ и, чтобы его популяризировать, вы решили разрешить сдавать задачи в своей системе только на нем. Одной из особенностью языка является то, что любая программа записывается в одну строку и может состоять только из строчных и заглавных букв английского алфавита (a-z, A-Z), цифр (0-9), скобок (‘(’, ‘)’, ‘{’, ‘}’ ‘[’, ‘]’), знаков сравнения (‘<’, ‘>’, ‘=’) и символов ‘+’, ‘-’, ‘*’, ‘/’, ‘;’.

Формат входных данных
В первой строке вам дано число  \(n\) \((1 \leqslant  n \leqslant 200\,000)\), равное длине каждой из программ.

Во второй строке вам дана программа первого участника на языке S++.

В третьей строке вам дана программа второго участника на языке S++.

Формат выходных данных
Если вторая программа списана с первой, выведите <<YES>> (без кавычек), на следующей строке выведите \(m\) – количество различных символов в первой программе, которые хотя бы раз заменялись. Обозначим эти символы за \(c_1,\ c_2,\ \ldots, \ c_m\). После этого выведите \(m\) строк. На \(i\)-й строке  необходимо вывести символы \(c_i\) и \(p(c_i)\) через пробел. Если вторая программа не списана с первой, то выведите <<NO>> (без кавычек).

 

Примечание
В первом примере списывающий заменил все вхождения ‘i’ на ‘j’ и вхождения ‘n’ на ‘m’.

Во втором примере участник заменял ‘a’ на ‘e’, ‘b’ на ‘f’, ‘с’ на g’ и ‘-’ на ‘+’.

В третьем примере невозможно осуществить процесс замен так, чтобы из первой строки получилась вторая.

В четвертом примере участник списал, заменив некоторые вхождения ‘a’ на ‘b’.

В пятом примере участник списал, заменив некоторые вхождения ‘a’ на ‘b’ и все вхождения ‘c’ на ‘a’.

Для МОШ по информатике было придумано и подготовлено \(n\) задач. Всего в олимпиаде будут учавствовать \(k\) школьников. И вот до олимпиады осталась всего неделя! Но, как вы знаете, некий <<Турист>> очень любит придумывать задачи и потом давать их на разные олимпиады. А так как <<Турист>> ну уж очень умный, то он явно придумает и даст все задачи, которые придумало жюри МОШа. В рамках подготовки к олимпиаде, школьники будет решать задачи <<Туриста>>. Причём вы знаете, что каждый из участников прорешает за неделю не менее \(a\) и не более \(b\) задач из тех, что собираются дать на МОШ. Жюри даст на олимпиаду все задачи, которые не решал никто из участников ранее. Скажите минимальное и максимальное количество задач, которые могут быть даны на МОШ из заранее подготовленных.

Формат входных данных
В первой строке вводится число \(n\) \((1 \leqslant n \leqslant 10^9)\) — количество задач, подготовленных для МОШ по информатике.

Во второй строке вводится число \(k\) \((1 \leqslant k \leqslant 10^9)\) — число участников МОШ.

В третьей строке вводится число \(a\) \((1 \leqslant a \leqslant n)\) — минимальное число задач, которое прорешает каждый из участников в течение недели.

В третьей строке вводится число \(b\) \((a \leqslant b \leqslant n)\) — максимальное число задач, которое может прорешать каждый из участников в течение недели.

Формат выходных данных
Выведите два числа – минимальное и максимальное число задач, которые жюри может дать на МОШ.

Знаменитый писатель Велепин очень продуктивен. Совсем недавно он подписал контракт с известным изданием, и теперь за \(i\)-й год ему нужно написать \(k_i\) романов. Для него это вообще не проблема: он может сколько угодно писать о самураях, космосе, пустоте, насекомых и оборотнях.

У него есть \(n\) постоянных читателей, каждый из которых в \(i\)-й год прочитает один из \(k_i\) романов, выпущенных Велепиным. Читатели очень любят обсуждать новинки, поэтому \(j\)-й из них будет доволен в течение года, если такой же роман, как и он, прочитают как минимум \(a_j\) человек, включая его самого.

Издание, с которым подписал контракт Велепин, очень современно: у него есть возможность контролировать, какое произведение прочитает каждый из поклонников. Оно не хочет издавать романы просто так, поэтому хотя бы один экземпляр каждого романа должен попасть в руки читателя. Издание надеется выиграть награду <<Издание \(q\)-летия>>, поэтому отдел маркетинга хочет узнать, какое максимальное количество постоянных читателей можно сделать довольными в течение каждого года, оптимально распределяя романы между ними. Так как в отделе маркетинга нет никого, кто мог бы это сделать, он обратился к вам за помощью.

Формат входных данных
В первой строке дано одно целое число \(n\) \((2 \leqslant n \leqslant 300\,000)\) — количество постоянных читателей Велепина.

Во второй строке дано \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) \((1 \leqslant a_j \leqslant n)\) — количество людей, которые должны читать тот же роман, что и \(j\)-й, чтобы он был доволен.

В третьей строке дано одно целое число \(q\) (\(1 \leqslant q \leqslant 300\,000\)) — количество лет, которые нужно проанализировать.

В каждой из следующих \(q\) строк дано по одному целому числу \(k_i\) \((2 \leqslant k_i \leqslant n)\) — количество романов, которые Велепин должен написать в \(i\)-й год.

Формат выходных данных
Выведите \(q\) строк, в каждой из них ровно одно число — максимальное количество человек, которые могут быть довольны в \(i\)-й год, если Велепин выпустит \(k_i\) романов.


Примечание

В первом примере в первый год оптимальным является разделение \(1, 1, 1, 2, 2\) (первый роман читают первые три человека, а два последних — второй). Во второй год оптимальным решением является \(1, 1, 2, 2, 3\) (первый роман читает первый и второй человек, второй роман читает третий и четвертый человек, третий роман читает пятый человек). В третий год оптимальным будет разбиение \(1, 2, 2, 4, 3\). Соответственно количество довольных людей по годам будет \(5, 5, 3\).

Поделиться
Класснуть