Информатика

16 015 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Алгоритм вычисления значения функций F(n) и G(n), где n – натуральное число, задан следующими соотношениями:

F(n) = n + 5, если n < 10;
F(n) = n % 5 + G(F(n/5)), в остальных случаях;
G(n) = n + 10, если n < 10;
G(n) = n % 10 + G(n/10), в остальных случаях;


Определите количество различных значений n, не превосходящих 106,  при котором значение функции F(n) кратно значению функции G(n)?
Знак / - означает операцию целочисленного деления.
Знак % - означает операцию вычисления остатка при делении двух целых чисел.
 
Операнды арифметического выражения записаны в системе счисления с основанием 17.
5x5517 + 88y5617
В записи чисел переменными x и y обозначены неизвестные цифры. Определите наименьшее значение х, при которых значение данного арифметического выражения кратно 181. Для найденных значений x и y вычислите частное от деления значения арифметического выражения на 181 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Два узла, находящиеся в разных подсетях, имеют IP-адреса 192.168.128.153 и 192.168.224.185. В масках обеих подсетей одинаковое количество единиц. Укажите наименьшее возможное значение третьего слева байта этой маски. Ответ запишите в виде десятичного числа

Исполнитель Редактор получает на вход строку символов и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w
обозначают цепочки символов.
А) заменить (v, w)
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 
заменить (111, 27) преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождении? цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v)
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение
«истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

Цикл

ПОКА условие
    последовательность команд
КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

Дана программа для Редактора:
НАЧАЛО
ПОКА нашлось (63) ИЛИ нашлось (664) ИЛИ нашлось (6665)
  ЕСЛИ нашлось (63) ТО заменить (63, 4)
  ИНАЧЕ
    ЕСЛИ нашлось (664) ТО заменить (664, 65)
    ИНАЧЕ
      ЕСЛИ нашлось (6665) ТО заменить (6665, 663) КОНЕЦ ЕСЛИ
    КОНЕЦ ЕСЛИ
  КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

На вход приведённой выше программе поступает строка, начинающаяся и заканчивающаяся цифрой «5», а между ними записана n раз цифра «6» (3 < n < 10 000). Определите количество возможных различиных значений суммы цифр результирующей строки, при различных значениях n.
При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 156 символов и содержащийтолько десятичные цифры и символы из 1377-символьного специального алфавита. В базе данных ддя хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит.
Определите объем памяти (в Кбайт), необходимый для хранения 32768 идентификаторов. 
В ответе запишите только целое число - количество Кбайт. 
50099#50099
Формальной верификацией (проверкой) называется математическое доказательство соответствия или несоответствие предмета верификации его формальному описанию.
Известно, что целочисленная переменная обычно занимает ячейку памяти фиксированного размера, а значит, имеет заранее предопределённый, установленный её типом данных, диапазон допустимых значений, выход за пределы которого приведёт к переполнению.
В рамках данной задачи требуется определить, какие значения могут принимать переменные некоторой программы, чтобы в процессе её работы не произошло ни одного переполнения.

Входные данные
В первой строке натуральное число N, не превышающее 10, - количество переменных. Далее N строк, в которых через пробел записано имя переменной в виде одной заглавной латинской буквы, и два целых числа (по модулю не превышают 106) - минимальное и
максимальное значения, которые определяются её типом данных. Затем в следующей строке записано натуральное число M, не превышающее 100 - количество операций над переменными.
Далее в M строках записаны выражения вида A = B + K, где A и B - имена переменных, а K - число, не превышающее по модулю 106. Допустимы две операции: сложение и вычитание.

Выходные данные
Вывести N строк, где для каждой переменной через пробел указать её имя и диапазоны значений, которые могут быть ей присвоены перед первой операцией присваивания, чтобы гарантированно не произошло ни одного переполнения. Переменные вывести в
соответствии с алфавитным порядком их имён.
 
✓ 4✗ 81 100средняяВойти и решать
С помощью текстового редактора определите, сколько раз встречается сочетание букв "или" только в составе других слов, но не как отдельное слово, в тексте глав с IX по XI рассказа А.И. Куприна "Гранатовый браслет". В ответе укажите только число.

Файл к заданию
50096#50096
Требуется разделить заданный текст на английском языке на 3 группы слов по их первой букве так, чтобы количество слов в группах отличалось на минимальную величину. Группы могут формироваться только на основе алфавитного порядка латинских букв и задаются в виде диапазонов, например a-i, j-o, p-z.

Входные данные
В первой строке записано число N, не превышающее 106 - количество строк в тексте. Далее записано N строк текста, в каждой из которых не более 1000 символов. Текст состоит из латинских букв разного регистра, пробелов и знаков препинания ".", ",", "!", "?", ":".
После каждого знака препинания обязательно ставится пробел либо строка заканчивается.
Переносы слов с одной строки на другую отсутствуют.

Выходные данные
Одно число - величина, на которую отличается количество слов в группе, где их больше всего, от количества слов в группе, где их меньше всего.
Примеры
№ Входные данные Выходные данные Примечание
1 3
Above all zoo the blue bird
soars. Hippopotamus hopes high
honey
hotel?
2 Слова можно разбить на 3
группы:
1-я - 4 слова на буквы a и b;
2-я - 5 слов на букву h;
3-я - 3 слова на буквы s-z.
2 2
A a a a, o.
O o o! A?
5 Слова можно разбить на 2
группы:
1-я - все слова на букву a;
2-я - все слова на букву o;
3-я - пустая.
✓ 9✗ 24900средняяВойти и решать
Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены оба условия:
- в строке есть ровно два различных числа, каждое из которых повторяется дважды;
- минимальное число из повторяющихся дважды чисел меньше минимального из неповторяющихся дважды чисел, а максимальное число из повторяющихся дважды чисел больше максимального из неповторящихся дважды  чисел.
В ответе запишите только число.

Файл к заданию
Сколько существует семиричных шестизначных чисел, кратных пяти и содержащих в своей записи ровно одну цифру 5, и при этом никакие две одинаковые цифры не стоят рядом.
Прибор автоматической фиксации нарушений правил дорожного движения делает цветные фотографии размером 602х898 пикселей, используя палитру из 16777216 цветов. Для передачи снимки группируются в пакеты по 128 штук, затем передаются в центр обработки информации со скоростью 1024 бит/с.  Сколько секунд требуется для передачи одного пакета фотографий?
В ответе запишите целую часть полученного числа.
 

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её
голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять
хвост
, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая
передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.

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

Повтори 4 [Налево 90 Повтори 2 [Вперёд 4 Направо 90] Вперёд 4]
Поднять хвост
Налево 90 Вперёд 3 Направо 90 Назад 3
Опустить хвост
Повтори 4 [Вперёд 10 Направо 90]

Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченного заданными
алгоритмом линиями, включая точки на линиях.

На вход алгоритма подаёется натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 4, то последние три цифры двоичной записи заменяются на первые три цифры двоичной записи числа, полученного в результате деления N на 4. В случае, если в двоичной записи результата деления меньше трех цифр, то двоичная запись результата деления дополняется слева незначащими нулями. 
б) если число N не делится на 4, то остаток от деления умножается на 4, переводится в двоичную запись и дописывается слева числа.
Полученная таким образом запись является двоичной записью искомого числа R. 
3. Результат переводится в десятичную систему и выводится на экран. 

Например, для исходного числа 13 = 11012 результатом является число 10011012 = 77, а для исходного числа 12 = 10012 это число 10112 = 11. 

Укажите максимальное значение R, меньшее 210, которое может быть получено с помощью данного алгоритма. В ответе запишите это число в десятичной системе счисления.
По каналу связи передаются сообщения, содержащие только девять букв: А, Ж, У, Р, Н, О, С, Т, Ь. Для передачи используется двоичный код, удовлетворяющий условию Фано. 
Известны кодовые слова некоторых букв:
А 000
Ж 001
У 100
Р 010
Н 1111
О 1110

Какое наименьшее количество двоичных знаков потребуется для кодирования трех оставшихся букв.
В ответе запишите суммарную длину кодовых слов для букв С, Т, Ь. 

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

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


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

Миша заполнял таблицу истинности логической функции F

\((\bar{z} \lor \bar{w}) \rightarrow (\bar{w} \land y \lor \bar{x})\)

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

        F
    0 0 0
1 1   1 0
  0 0 1 0

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

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

На рисунке изображена схема дорог N-ского района. В таблице звездочкой обозначено наличие дороги из одного населенного пункта в другой.
Отсутствие звездочки означает, что такой дороги нет.

 

  Номер пункта
  1 2 3 4 5 6
Номер пункта 1 х *   * * *
2 * х *      
3   * х   *  
4 *     х   *
5 *   *   х *
6 *     * * х

Каждому населенному пункту на схеме соответствует номер в таблице, но неизвестно, какой именно номер. Определите, какие номера в таблице могут
соответствовать населенным пунктам В и Е на схеме. В ответе запишите эти два номера в возрастающем порядке без пробелов и знаков препинания.

Отвлечемся от задач про программистов и перенесемся в совершенно обыкновенные ясли, где мальчик Вова (3 годика) практикуется в устном счете, а если точнее — в вычислении арифметических выражений по модулю \(10^9 + 7\).

Совсем недавно Вова придумал длинное и очень красивое арифметическое выражение. Выражение состяло из \(n\) целых неотрицательных чисел, меньших \(10^9 + 7\), и знаков сложения и умножения между ними. Первым же делом он вычислил это выражение по модулю \(10^9 + 7\), после чего выписал само выражение и результат на лист бумаги. Все числа он выписал без ведущих нулей.

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

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

Формат входных данных
Единственная строка входного файла содержит выражение, которое обнаружил Вова у себя на листке. Выражение состоит из двух частей, разеделенных знаком ‘=’.

Первая часть содержит \(n\) целых неотрицательных чисел, разделенных знаками сложения (‘+’) и умножения (‘*’) (\(1 \le n \le 10^5\)). Вторая часть — целое неотрицательное число, означающее результат вычисления выражения.

Числа и все знаки разделяются одним пробелом. Гарантируется, что все числа строго меньше \(10^9 + 7\) и записаны без ведущих нулей.

Формат выходных данных
В случае, если данное выражение не может быть получено из верного равенства заменой не более двух цифр, выведите <<NO>>.

В противном случае в первой строке выведите <<YES>>. На следующей строке выведите целое число \(k \leq 2\) — количество чисел, которые были изменены.

В следующих \(k\) строках выведите по два числа — позицию измененнного числа в выражении (от \(1\) до \(n\)) и его исходное значение.

Суммарно должно быть изменено не более двух цифр. В процессе замены в числах не должны появиться ведущие нули и числа должны остаться меньше \(10^9 + 7\). Если существует несколько вариантов ответа, выведите любой из них.

 

Студент первого курса ИТМО Миша изучает новый примитивный язык программирования. В этом языке все операции производятся над массивами целых неотрицательных чисел длины \(n\).

Миша успел создать массив \(a\) и равный ему массив \(b\). Также он успел реализовать четыре функции:

  1. shift — делает циклический сдвиг массива \(a\) влево на \(d\), то есть при \(a = [a_0, a_1, \ldots, a_{n-1}]\) выполняет присваивание \[a \gets [a_d, \ldots, a_{n-1}, a_0, \ldots, a_{d-1}] \text{;}\]

  2. xor — присваивает в массив \(b\) его поэлементный xor (побитовое исключающее <<или>>) с массивом \(a\), то есть \[b \gets [a_0 \oplus b_0, a_1 \oplus b_1, \ldots, a_{n-1} \oplus b_{n-1}] \text{;}\]

  3. and — присваивает в массив \(b\) его поэлементный and (побитовое <<и>>) с массивом \(a\);

  4. or — присваивает в массив \(b\) его поэлементный or (побитовое <<или>>) с массивом \(a\).

Используя эти функции, Миша написал программу, задаваемую последовательностью операций xor, and и or длины \(m\). Программа в цикле \(p\) раз выполняет следующие действия: для каждой операции из последовательности сначала вызывается shift, а затем соответствующая этой операции функция. Так, для последовательности операций \([\mathtt{or}, \mathtt{xor}, \mathtt{and}]\) и \(p = 5\) программа будет выглядеть как

b = a = [...]
repeat 5 times {
    shift
    or
    shift
    xor
    shift
    and
}

К сожалению, язык еще новый, и его интерпретатор не справляется с выполнением такой программы. Помогите Мише определить, чему будет равно конечное состояние массива \(b\) после выполнения заданной программы.

Формат входных данных
В первой строке ввода перечислены четыре целых числа \(n\), \(m\), \(d\) и \(p\) — длина массива, количество операций в последовательности, величина сдвига и количество повторений (\(0 \le d < n \le 2 \cdot 10^5\); \(1 \le m \le 10\); \(1 \le p \le 10^9\)).

Во второй строке перечислены \(n\) целых чисел \(a_i\) — элементы массива \(a\), они же — изначальные значения элементов массива \(b\) (\(0 \le a_i \le 10^9\)).

В третьей строке через пробел перечисены \(m\) слов, каждое из которых равно <<xor>>, <<and>> или <<or>> — последовательность применяемых на каждой итерации цикла операций.

Формат выходных данных
Выведите \(n\) целых чисел — элементы массива \(b\) после выполнения описанной программы.

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