Язык программирования

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

Производится звукозапись с частотой дискретизации f Гц и глубиной кодирования b бит на отсчёт. Запись ведётся по c каналам. Определить, сколько целых секунд записи поместится в память объёмом V байт.

Чтобы не терять точность, переведите объём памяти в биты.

Ввод. Четыре целых числа, каждое на своей строке: \(f\), \(b\), \(c\) и \(V\), где \(1 \le f \le 10^6\), \(1 \le b \le 64\), \(1 \le c \le 8\), \(1 \le V \le 10^{15}\).

Вывод. Одно целое число — количество целых секунд.

При регистрации в информационной системе каждому пользователю выдаётся имя длиной ровно N символов. Имя составляется из алфавита мощностью M символов. Для хранения имени отводится одинаковое для всех пользователей целое число байт, при этом используется посимвольное кодирование, а на каждый символ отводится одинаковое целое число бит. Дополнительно на каждого пользователя хранится K байт служебных сведений.

Определить объём памяти, необходимый для хранения сведений о P пользователях.

Округлять вверх придётся дважды и на разных уровнях: сначала — число бит на один символ, затем — число байт на одно имя. Типичная ошибка состоит в том, чтобы округлить итоговый объём вместо объёма одной записи; проверьте себя на примере.

Число бит на символ — наименьшее \(i\), при котором \(2^i \ge M\). Его можно получить без цикла: (M - 1).bit_length().

Ввод. Четыре целых числа, каждое на своей строке: \(N\), \(M\), \(K\) и \(P\), где \(1 \le N \le 1000\), \(1 \le M \le 10^6\), \(0 \le K \le 1000\), \(1 \le P \le 10^6\).

Вывод. Одно целое число — объём памяти в байтах.

Числовая ось разбита на ячейки шагом \(h\), начиная от нуля: ячейка с номером \(k\) занимает промежуток \(\bigl[\,k h,\ (k+1)h\,\bigr)\). Для координаты \(x\) определить номер ячейки, в которую она попадает, — двумя способами: как x // h и как int(x / h).

Координата может быть отрицательной. Найдите такие x, при которых два способа дают разные ответы, и объясните, какой из них верен.

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

Ввод. Два целых числа, каждое на своей строке: \(x\) и \(h\), где \(-10^6 \le x \le 10^6\), \(1 \le h \le 10^6\).

Вывод. Два целых числа через пробел: результат x // h и результат int(x / h).

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

Полуволна равна \(\lambda/2\), поэтому число полуволн равно

\[\frac{L}{\lambda/2} = \frac{2L}{\lambda}\]

 

Ввод. Два целых числа, каждое на своей строке: \(L\) и \(\lambda\), где \(1 \le L \le 10^{16}\), \(1 \le \lambda \le 10^9\).

Вывод. Одно целое число — количество целых полуволн.

Аккумулятор ёмкостью Q мА·ч питает прибор, потребляющий постоянный ток I мА.

Ответить на два вопроса:

1. Сколько целых часов проработает прибор от одного полностью заряженного аккумулятора? 2. Сколько аккумуляторов потребуется, чтобы прибор проработал непрерывно T часов?

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

Ввод. Три целых числа, каждое на своей строке: \(Q\), \(I\) и \(T\), где \(1 \le Q \le 10^9\), \(1 \le I \le 10^9\), \(1 \le T \le 10^9\).

Вывод. В первой строке — число целых часов работы одного аккумулятора. Во второй — число аккумуляторов на T часов работы.

Маятник совершает одно полное колебание за T миллисекунд. Наблюдение длилось t миллисекунд, причём в начальный момент маятник только начинал колебание.

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

Ввод. В первой строке — целое \(T\), где \(1 \le T \le 10^6\). Во второй — целое \(t\), где \(0 \le t \le 10^{12}\).

Вывод. Два целых числа через пробел: число полных колебаний и остаток времени в миллисекундах.

Дано трёхзначное натуральное число. Требуется вывести его разряды по отдельности, а затем сумму разрядов.

Задача отрабатывает связку операций // и %: деление на десять сдвигает число на разряд вправо, остаток от деления на десять снимает младшую цифру.

Ввод. Одно целое число \(n\), где \(100 \le n \le 999\).

Вывод. В первой строке — три числа через пробел: цифра сотен, цифра десятков, цифра единиц. Во второй строке — сумма разрядов.

Многие старейшие шифры основаны на замене букв на числа, например, в шифре A1Z26 каждая буква заменяется на её порядковый номер в алфавите. Вдохновившись этой идеей, первоклассник Петя решил придумать свой шифр-замену. Он хочет каждую букву от <<A>> до <<R>> (первые \(18\) букв латинского алфавита) заменять на одно из чисел \(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90\). Числа выбраны так, чтобы при дешифровке легко разделить последовательность цифр на коды букв, причём весь алфавит Петя не смог использовать, ибо сотни он ещё не узнал.

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

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

Программа получает на вход непустую строку \(s\), состоящую из прописных букв латинского алфавита от <<A>> до <<R>>, длина строки не превышает 1000 символов.

Программа должна вывести одно число — шифр строки \(s\). Обратите внимание, число может быть длинным.

Решения, правильно работающие, когда строка состоит не более чем из \(4\) символов, будут оцениваться в \(20\) баллов.

Решения, правильно работающие, когда строка состоит из букв <<A>> и <<B>>, будут оцениваться в \(20\) баллов.

Решения, правильно работающие, когда строка состоит из букв от <<A>> до <<I>>, будут оцениваться в \(44\) балла.

Даны два прямоугольника размера \(a\times b\) и \(c\times d\). Можно соединить их вместе, приложив сторону одного прямоугольника к стороне другого и склеив место соединения. Прямоугольники можно поворачивать перед склеиванием. После этого из полученной фигуры нужно вырезать квадрат со сторонами, параллельными сторонам прямоугольника. Определите максимальное возможное значение стороны квадрата.

На рисунке изображены два прямоугольника со сторонами \(8\times 3\) и \(6\times 2\), из которых можно вырезать квадрат со стороной 5 (заштрихован).

image

Программа получает на вход натуральные числа \(a\), \(b\), \(c\), \(d\), каждое в отдельной строке — стороны первого и второго прямоугольников. Все числа не превосходят \(10^9\).

Программа должна вывести одно целое число — максимальную возможную сторону квадрата.

В первой строке — число N, дальше N строк по шесть чисел через пробел.

Выведите, сколько строк удовлетворяют обоим условиям:

  • в строке одно число повторяется трижды, а остальные три различны;
  • квадрат суммы повторяющихся чисел больше квадрата суммы неповторяющихся.

Это условие взято из демоверсии ЕГЭ 2025 года. Для решения задачи напишите программу, считав входные данные с калвиатуры (а не с файла как в основном задании). Цель задания - проверить правильность написания программы.

СЕКРЕТНО
Дело VOIDLINKER · Эпизод 12 из 13
Транзакция-маркер
ИСТОЧНИК: лог финансовой системы CYBERONE-FIN
ИЗ ПЕРЕХВАЧЕННОЙ ПЕРЕПИСКИ:
«Когда я отмываю украденные средства, ID транзакций подчиняется правилу: все цифры в десятичной записи различны — никаких повторов. Найди мой самый крупный ID — это самая большая отмытая сумма. — V.»
ФОРМАЛЬНАЯ ЗАДАЧА

Определите максимальное число, в десятичной записи которого все цифры различны. Под числом понимается максимальная последовательность цифр, ограниченная нецифровыми символами или границами строки. Числа с ведущими нулями (кроме 0) не рассматриваются. Если подходящих нет — выведите 0.

ВХОДНЫЕ ДАННЫЕ

Одна строка из заглавных букв и цифр, до 105 символов.

ВЫХОДНЫЕ ДАННЫЕ

Само найденное число.

СЕКРЕТНО
Дело VOIDLINKER · Эпизод 10 из 13
Стеганограф
ИСТОЧНИК: лог сервера, проанализированный forensic-командой
ИЗ ПЕРЕХВАЧЕННОЙ ПЕРЕПИСКИ:
«Думаете, видите случайный мусор в логе? Я прячу там сообщения. Скрытый блок: чётная цифра — повторяющаяся буква — та же чётная цифра. Внутри только эта буква, никаких других символов. Найдите самый длинный такой блок. — V.»
ФОРМАЛЬНАЯ ЗАДАЧА

Определите последовательность из максимального количества идущих подряд одинаковых букв, начинающуюся и заканчивающуюся одной и той же чётной цифрой (0,2,4,6,8), не содержащую внутри других цифр и других букв, кроме повторяющейся. Длина считается вместе с обрамляющими цифрами. Если ничего нет — выведите 0.

ВХОДНЫЕ ДАННЫЕ

Одна строка из заглавных букв и цифр, до 2·105 символов.

ВЫХОДНЫЕ ДАННЫЕ

Одно целое число.

СЕКРЕТНО
Дело VOIDLINKER · Эпизод 9 из 13
Маяк PQRS
ИСТОЧНИК: радиоэфир 433 МГц / 31.10.2026 16:24
ИЗ ПЕРЕХВАЧЕННОЙ ПЕРЕПИСКИ:
«Слышишь треск на 433-й? Это мой маяк. Циклический сигнал: PQRSPQRSPQRS… Каждый символ — следующий в цикле P→Q→R→S→P… Сигнал может начаться и оборваться в любой точке цикла, но содержит хотя бы одну полную группу PQRS. Найди мой самый длинный отрезок маяка. — V.»
ФОРМАЛЬНАЯ ЗАДАЧА

Текстовый файл состоит из символов P, Q, R, S. Определите максимальную длину непрерывной подпоследовательности, в которой каждый символ — следующий в цикле P→Q→R→S→P, и содержится не менее одной полной группы PQRS. Если нет — выведите 0.

ВХОДНЫЕ ДАННЫЕ

Одна строка до 2·105 символов.

ВЫХОДНЫЕ ДАННЫЕ

Одно целое число.

На странице есть:

<ul id="list"></ul>

JavaScript выполняет:

const ul = document.getElementById('list');
ul.innerHTML = '';
const li = document.createElement('li');
li.textContent = 'Бег';
ul.appendChild(li);

Что увидит пользователь?

  1. Пустой список
  2. Список с одним пунктом «Бег»
  3. Ошибку в консоли
  4. Текст «Бег» без маркера списка

Что произойдёт при выполнении этого кода?

fetch('/api/add', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({name: 'Бег'})
})
.then(r => r.json())
.then(data => alert(data.msg));
  1. Откроется новая страница /api/add
  2. Страница перезагрузится с новой привычкой
  3. JavaScript отправит POST с JSON на сервер, получит ответ и покажет alert
  4. Привычка добавится, но ничего не произойдёт на экране

Пользователь нажал кнопку «Добавить» в HTML-форме:

<form method="POST" action="/add">
  <input name="habit_name" value="Йога">
  <button type="submit">Добавить</button>
</form>

Как Flask получит значение «Йога» в обработчике?

  1. request.json['habit_name']
  2. request.form['habit_name']
  3. request.args['habit_name']
  4. request.get('habit_name')

В родительском чате прислали текст с контактами репетиторов. Телефоны записаны в разных форматах:

  • +7 (999) 123-45-67
  • 8 999 123 45 67
  • 89991234567
  • +7-999-123-45-67

Нужно привести все найденные в тексте телефоны к единому виду +7XXXXXXXXXX (знак плюс, цифра 7, потом 10 цифр номера).

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

Произвольный текст до 10 000 символов. Все телефоны — российские мобильные: код оператора (3 цифры), потом 3-2-2 цифры с произвольными разделителями (пробелы, дефисы, скобки).

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

Каждый телефон в формате +7XXXXXXXXXX на отдельной строке в порядке появления в тексте.

На сайте школьного кружка робототехники при регистрации нужно валидировать пароль.

Напиши программу, которая считывает одну строку — пароль — и выводит YES, если пароль удовлетворяет всем условиям, и NO иначе.

Пароль считается надёжным, если:

  • длина от 8 до 20 символов включительно;
  • состоит только из латинских букв, цифр и символов _ - ! @ #;
  • содержит хотя бы одну заглавную букву;
  • содержит хотя бы одну строчную букву;
  • содержит хотя бы одну цифру.

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

Одна строка — пароль (длиной до 100 символов).

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

Строка YES или NO.

🚀
Шаг 10: Стартап OlympMap
Сложно
Финал лета. Вася с друзьями запускают OlympMap — сервис, который показывает, какие олимпиады дают льготы в какие вузы. За неделю в чате «Абитура-2026» набрали 400+ анкет от призёров. Только формы не было — все писали в чат через символ |, и половина с опечатками. Перед запуском MVP надо понять, сколько анкет реально пригодны для базы. От этого зависит, выйдет ли проект на школьный хакатон.
Условие задачи
 

Дано N анкет. Каждая анкета — одна строка из 5 полей через символ |:

  1. ID олимпиадника: 2 заглавные латинские буквы + 4 цифры. Пример: AB1234
  2. ФИО: фамилия (русская, с заглавной буквы) + пробел + заглавная буква + точка + заглавная буква + точка. Пример: Иванов И.И.
  3. Email: имя@домен.tld, где tld — 2–4 латинские буквы.
  4. Телефон: ровно +7 и 10 цифр. Пример: +79991234567
  5. Балл: целое число от 1 до 100.

Анкета считается валидной, если ВСЕ пять полей соответствуют формату.

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

В первой строке — целое число N. Далее N строк с анкетами.

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

Одно целое число — количество валидных анкет.

Подсказка: Используй re.fullmatch() — в отличие от match, она требует, чтобы шаблон совпал с всей строкой, а не только с её началом.
Поделиться
Класснуть