Задача на реализацию

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

Вам на вход подаётся JSON-ответ от API погоды с разделами current (текущая температура) и hourly (почасовой прогноз на 24 часа).

Составьте сводку погоды за сутки.

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

Одна строка — JSON-объект с разделами current и hourly.

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

Ровно 6 строк:

=== ПОГОДА НА СУТКИ ===
Сейчас: T°C
Максимум: X°C
Минимум: Y°C
Средняя: A°C
Размах: R°C

где T — текущая температура из current, X/Y/A — максимум, минимум и среднее по массиву hourly (среднее округлить до 1 знака), R — разница между максимумом и минимумом.

Вам на вход подаётся JSON-ответ от API погоды с почасовым прогнозом и пороговое значение температуры.

Выведите все часы, когда температура больше или равна порогу. Каждый час — на отдельной строке.

В разделе hourly время хранится как "2026-04-16T15:00". Возьмите только часть после T (получится 15:00).

Если таких часов нет, выведите Нет данных.

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

Первая строка — JSON-объект с разделом hourly.
Вторая строка — целое число (порог).

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

По одной строке на каждый подходящий час:

HH:00 — X°C

Или Нет данных, если ни один час не подошёл.

Ученик напечатал в текстовом процессоре следующий текст.

Московский Кремль является старейшей частью города и его главным историческим центром. Площадь территории Кремля составляет около 277000 квадратных метров. На территории Кремля расположены соборы, дворцы и здания правительства. Кремль включён в список Всемирного наследия ЮНЕСКО.

Далее он выполнил последовательно следующие действия:

  1. Поставил курсор справа от точки после слова «метров».
  2. Нажал клавишу Enter.
  3. Выделил весь текст.
  4. В свойствах меню «абзац» выставил значения:
    1) отступ первой строки: 1,5 см;
    2) выравнивание по ширине.

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

  1. Выделил словосочетание «Московский Кремль» и нажал на кнопку Ж.
  2. Выделил словосочетание «квадратных метров» и нажал клавишу backspace на клавиатуре. Напечатал «м2» (без кавычек).
  3. Выделил цифру 2 в «м2» и нажал на кнопку (надстрочный символ).
  4. Выделил словосочетание «Всемирного наследия ЮНЕСКО» и нажал на кнопку К.
  5. Выделил весь текст.
  6. Установил шрифт Times New Roman (с засечками).

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

Вариант 1

Московский Кремль является старейшей частью города и его главным историческим центром. Площадь территории Кремля составляет около 277000 м2.

На территории Кремля расположены соборы, дворцы и здания правительства. Кремль включён в список Всемирного наследия ЮНЕСКО.

Вариант 2

Московский Кремль является старейшей частью города и его главным историческим центром. Площадь территории Кремля составляет около 277000 м2.

На территории Кремля расположены соборы, дворцы и здания правительства. Кремль включён в список Всемирного наследия ЮНЕСКО.

Вариант 3

Московский Кремль является старейшей частью города и его главным историческим центром. Площадь территории Кремля составляет около 277000 м2. На территории Кремля расположены соборы, дворцы и здания правительства. Кремль включён в список Всемирного наследия ЮНЕСКО.

Вариант 4

Московский Кремль является старейшей частью города и его главным историческим центром. Площадь территории Кремля составляет около 277000 м2.

На территории Кремля расположены соборы, дворцы и здания правительства. Кремль включён в список Всемирного наследия ЮНЕСКО.

Дана строка ДНК, состоящая из символов A, T, G, C. Длина строки кратна 3. Выполните следующие вычисления:

  1. Длина последовательности.

  2. GC-состав — процентная доля нуклеотидов G и C: \[\mathrm{GC\%} = \frac{|G|+|C|}{n}\times 100,\] где \(|X|\) — количество символов \(X\), \(n\) — длина строки. Округлить до 2 знаков после запятой.

  3. Обратная комплементарная цепь (reverse complement). Комплементарность: \(\texttt{A}\leftrightarrow\texttt{T}\), \(\texttt{G}\leftrightarrow\texttt{C}\); затем цепь разворачивается.

  4. GC-богатые кодоны — количество кодонов (трёхбуквенных блоков), в которых два или три нуклеотида являются G или C.

  5. Наиболее частый нуклеотид. При ничьей вывести тот, который идёт первым в алфавитном порядке (\(\texttt{A}<\texttt{C}<\texttt{G}<\texttt{T}\)).

Формат ввода

Одна строка — последовательность ДНК (только заглавные A, T, G, C; \(6\le n\le 300\); \(n\) кратно 3).

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

Ровно 5 строк в следующем порядке:

length: <целое>
gc: <вещественное, 2 знака>
rc: <строка>
gc_rich_codons: <целое>
most_frequent: <символ>

Пример ввода:

ATGGGCCCTATGAAA

Пример вывода:

length: 15
gc: 46.67
rc: TTTCATAGGGCCCAT
gc_rich_codons: 2
most_frequent: A

Разбор примера. Последовательность: ATG | GGC | CCT | ATG | AAA. GC-состав: \((4+3)/15=7/15\approx46{,}67\%\). Кодоны GGC (3 G/C) и CCT (2 G/C) — итого 2 GC-богатых кодона. Частоты: \(A=5,\;G=4,\;C=3,\;T=3\) \(\Rightarrow\) лидирует A.

Часть 1

Напиши функцию lantern(size, c), которая рисует фонарик.

Параметры функции:

  • size — диаметр круга (число)
  • c — цвет фонарика (строка)

Порядок рисования

  1. Подвес — коричневый ("brown") закрашенный прямоугольник:
    • ширина: 10
    • высота: 20
  2. Круг — закрашенный круг под подвесом:
    • цвет: параметр c
    • диаметр: параметр size
    • круг рисуется так, чтобы он был по центру подвеса

Часть 2

После функции напиши основную программу, которая рисует гирлянду из 6 фонариков в ряд.
Должна получиться гирлянда из 6 разноцветных фонариков разного размера. Порядок следования фонариков следуюший:
красн жёлт  зелён красн жёлт  зелён
 40    35    45    35    40    35
Первый фонарик рисуется из точки (0, 0), каждый следующий сдвигается по оси х на 50 вправо. 

Пример вызова

lantern(50, "red")    # красный фонарик диаметром 50
lantern(30, "yellow") # жёлтый фонарик диаметром 30

Подсказки

  • Используй begin_fill() и end_fill() для заливки
  • Для круга используй circle(-size/2) — минус нужен, чтобы круг рисовался справа от черепашки
  • Не забудь поднимать и опускать перо (pu(), pd()) в нужных местах

Нарисуйте цветной рисунок из трёх дуг (каждая дуга это полуокружность - угол 180 градусов)

  1. Начало в (0, 0).
  2. Фиолетовая дуга радиусом 150 (рисуется вверх вправо).
  3. Желтая дуга радиусом 100.
  4. Зеленая дуга радиусом 50.
  5. Жёлтая и зеленая дуги находятся внутри фиолетовой так как показано на рисунке

У каждой дуги цвет контура и цвет заливки одинаковый

Словом называется последовательность символов ограниченная слева и справа пробелом или началом(концом) строки. Найдите все слова, начинающиеся на английскую букву p (без учета регистра).

Формат входных данных
Строка, состоящая из букв английского алфавита. Длина строки не более 1000 символов.

Формат выходных данных
Выведите все найденные слова в одной строке, разделяя их одним пробелом. Порядо слов должен быть таким же как в исходной строке.
Родители Андрея решили поклеить на одну из стен в его комнате новые обои. Высота стены n сантиметров, а ширина m сантиметров. К сожалению, обои, выбранные родителями, Андрею не понравились, и он решил их чем-нибудь закрыть. Так как он участвовал в большом количестве олимпиад, у него накопилось много дипломов. Все дипломы у Андрея одинаковые это прямоугольники высотой a сантиметров и шириной b сантиметров. Помогите Андрею узнать, сколько квадратных сантиметров обоев он сможет завесить дипломами, если не будет их разрезать и переворачивать. Все дипломы должны целиком размещаться внутри стены и не накладываться друг на друга.
Формат входных данных
В первой строке входных данных находится целое число n (1 n ≤ 2 ·109) высота стены.
Во второй строке находится целое число m (1 ≤ m ≤ 2 · 109) ширина стены.
В третьей строке находится целое число a (1 ≤ a ≤ 2 ·109) высота диплома.
В четвёртой строке находится целое число b (1 ≤ b ≤ 2 · 109) ширина диплома.
Формат выходных данных
Выведите одно целое число площадь части стены, которая будет закрыта дипломами, если их не поворачивать, не обрезать и не накладывать друг на друга.
Обратите внимание, что значение ответа в этой задаче может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в С и С++, тип long в Java и С#).

Замечание

В примере из условия можно разместить 6 дипломов, суммарная площадь которых равна 12 квадратным сантиметрам. Большее число дипломов разместить нельзя, они будут вылезать за границы стены.

 

re.finditer(pattern, string) - находит все совпадения, возвращает итератор.

  • Возвращает: итератор объектов Match
  • Использование: for match in re.finditer(r'\d+', text):


match.groups(default=None) - возвращает все захваченные группы в виде кортежа

Особенности:

  • Возвращает ВСЕ группы из шаблона

  • Группы нумеруются с 1 (group(1)group(2))

  • Если группа не найдена, возвращает default (по умолчанию None)

match.group(0) - найденная строка


Найти все теги товаров и вывести их вместе с названиями товаров.

Формат вывода
Товар: iPhone_14
Теги: Premium, New
Полное совпадение: Name: iPhone_14, Price: 999.99$, Category: Electronics, Tags: [Premium, New]
66153#66153
Иван Фёдорович сыщик с очень большим стажем. Однажды в городе произошла серия больших ограблений. На местах ограбления не было обнаружено ни улик, ни зацепок. Однажды грабителей практически застали врасплох, но они смогли скрыться. На месте преступления Иван Фёдорович заметил, что грабители обронили папку с листком и набором картонных карточек, с вырезанными окошками на этих картах. Придя в офис и рассмотрев улики подробнее, было замечено, что на листке напечатана прямоугольная матрица, состоящая из цифр, а карточки все были размером с матрицу, притом отверстия, вырезанные в карточках, отображали какие-то случайные цифры из матрицы.
Иван Фёдорович вспомнил, что когда-то сталкивался с подобной схемой обозначения мест ограбления, что карточки помогали определить координаты следующего места ограбления. Потому Иван Фёдорович решил выписать координаты всех мест преступлений в виде долготы и широты, а далее найти карточки, которые соответствуют координатам следующих мест преступлений.
Помогите ему быстрее найти преступников, определив координаты следующих мест преступлений.
Координаты преступления собираются при помощи карточки следующим образом:
  • на матрицу накладывается карточка;
  • далее двигаясь по каждой строке по порядку слева-направо, выписываются цифры, которые попали в прорези;
  • цифр всегда 18, притом координаты всегда состоят из 8цифр (две целой части, шесть вещественной), значит два символа игнорируются и обозначают точку в вещественном числе в соответствующем порядке.
Пример матрицы и карточки (где белые участки – это вырезы (отверстия)).

Таким образом начинаем выписывать цифры по строкам слева-направо: 554755831378617673. Знаем, что цифр обозначающих координату 8, а две лишние – обозначающие запятые, получим координаты 55.755831 37.617673.
Также на каждой карточке Иван Фёдорович заметил на углу пометку, которая, как позднее он понял, определяет, как должна быть развёрнута карточка, так как метка должна при наложении всегда находиться в левом верхнем углу при взгляде на неё:
  • 1 – метка в левом верхнем углу карточки;
  • 2 – метка в правом верхнем углу карточки;
  • 3 – метка в правом нижнем углу карточки;
  • 4 – метка в левом нижнем углу карточки.
Входные данные
на первой строке подаётся целое число K (2 <= K <= 100) – количество преступлений, которые совершили грабители;
далее на K строках подаются координаты предыдущих мест преступлений в виде вещественных чисел с точкой, разделённых пробелом (например, 55.755831 37.617673)
на следующей строке подаются размеры матрицы и карточек в виде целых чисел N, M (5 <= N,M <= 1000), где N – количество строк матрицы, а M – количество столбцов;
далее на N строках подаются по M цифр матрицы;
после подаётся на новой строке целое число – количество карточек L (K < L <= 100); 
далее подаётся на одной строке L цифр от 1 до 4 через пробел, которые отображаются метки карточка в соответствии с порядком их появления;
затем L раз по N строк и M цифр подаются карточки по порядку их появления, которые содержат либо цифру 1 – обозначающую наличие прорези на ней, либо 0 – если прорези в этом месте на карточке нет.
Выходные данные
выведите все координаты будущих мест преступлений (каждую с новой строки), отсортировав их по возрастанию (если две координаты одинаковые по первой координате, то сортировать по возрастанию по второй), координаты одного места выводить через пробел.
Примечание:
·при выводе дробной части координат выводить всегда 6 знаков, если знаков меньше, то дополнять их незначащими нулями;
·если матрица прямоугольная, то гарантируется, что при совмещении метки на карточке с левым верхним углом матрицы, карточка совпадёт с размером матрицы;
·данные на карточках нельзя отзеркаливать (переворачиватькарточки не в плоскости OXY);
·гарантируется, что если даны метки на карточках, то при повороте карточка совпадёт с размером матрицы, не будет такого, что карточка будет иного размера, чем матрица.
65816#65816
В сказочном мире Геомаба живут необычные существа в виде прямоугольников. Все они разного размера, но передвигаются все они одинаково –перекатыванием сбоку на бок. В очередной из дней жители Геомаба решиливыбрать себе мэра, так как дороги в их мире очень опасные – в них очень многоям и в них легко застрять, так как жители-прямоугольники могут передвигатьсятолько по плоским дорогам.
Мэр решил незамедлительно собрать группу добровольцев и направить их по дорогам Геомаба, но дорог так много, что Мэр понял, что отправлять добровольцев, а потом вытаскивать их из ям – дело трудозатратное, потому он обратился к Вам за помощью – написать алгоритм, который по размеру прямоугольника покажет все ямы, которые необходимо залатать, чтобы житель-прямоугольник смог спокойно передвигаться по дороге, а город потратил минимально ресурсов (заделал как можно меньше ям).
Прямоугольник считается застрявшим, если он не смог беспрепятственно перекатиться через яму (его угол попал в яму (не включая начало и конец ямы)).
Если прямоугольник попал не углом в яму, а попал точно стороной на границы ямы, то он не считается застрявшим.

Формат входных данных
На вход на первой строке подаётся число X (1 <= X <= 100000) – длина дороги в метрах.
На второй строке подаются числа W, H (1 <= W,H <= 100) – высота и ширина жителя-прямоугольника в метрах соответственно.
На третьей строке подаётся число N (1 <= N <= 1000) – количество ям на дороге.
Далее на N-строках подаются координаты начала ямы (в метрах от начала дороги) и её ширина в виде целых положительных чисел от 1 до X. Координаты ям могут подаваться в любом порядке. Но все ямы не пересекаются и не накладываются.
Формат выходных данных
Выведите на первой строке количество ям, которые необходимо заделать, чтобы житель-прямоугольник, для которого производится расчёт, смог добраться до конца дороги.
Далее выведите координаты всех ям отсортированные в порядке появления от начала дороги до конца, КАЖДУЮ С НОВОЙ СТРОКИ.

Примечание
Житель-прямоугольник перед стартом дороги находится так, что три его вершины находятся за пределом начала дороги, а одна вершина, являющаяся самой правой, стоит на позиции 0. Первоначальное положение жителя-прямоугольника может быть любым, нужно выбрать оптимальное, чтобы залатать как можно меньше ям.
Если решений несколько, выведите то, в котором сумма координат ям для залатывания наименьшая.

В данном случае житель может стоять основанием перед началом дороги на стороне 2 (положение №1) или 3 (положение №2).
Если он стоит на основании длиной 2, то он попадёт только в яму под номером 14.
Если он стоит на основании длиной 3, то он попадёт в ямы 10 и 14.
Городу выгоднее заделать только одну яму, под номером 14.

Положение №1.


Положение №2.

 
65795#65795
В онлайн-симуляции одной игры был представлен алгоритм уничтожения двух квадратных матриц одинакового размера.
В самом начале симуляции задаются две матрицы, которые стоят вплотную друг к другу.
Далее происходит уничтожение матриц – строки, которые соприкасаются у двух матриц числами, которые равны, уничтожаются (пример на картинке), затем обе матрицы поворачиваются одновременно на 90 градусов по часовой стрелке и повторяется алгоритм уничтожения. Матрицы уничтожаются до тех пор, пока есть чему уничтожаться. Даже если после первого поворота ничего не уничтожилось, то может уничтожиться после нескольких.

В данном случае заданы две квадратные матрицы размер 3*3. Их поставили вплотную друг к другу, соприкасается только одна строка по одинаковым числам (строка 2).

Потому данная строка полностью удаляется в двух матрицах, потому получаем.

Далее каждая матрица вращается по часовой стрелке на 90 градусов.


Далее производятся все те же действия с матрицей по уничтожению.
Задача состоит в том, чтобы вычислить сумму чисел в ячейках матриц после того, как строки больше не будут уничтожаться. Если матрицы полностью уничтожены, то сумма чисел в ячейках равна 0. 

Формат входных данных
На первой строке подаётся целое число N – размер квадратных матриц (1 <= N <= 1000).
Далее на N строках подаётся по N целых чисел в диапазоне от -1000 до 1000 – левая матрица.
Далее на N строках подаётся по N целых чисел в диапазоне от -1000 до 1000 – правая матрица.
Формат выходных данных
Вывести на одной строке через пробел сумму чисел оставшихся ячеек левой матрицы и правой матрицы, соответственно.



 

Напишите программу на Python, которая:

  1. Считывает уравнения из строки, разделенных запятой.

  2. Преобразует строку в символьное уравнение с помощью SymPy.

  3. Решает уравнение.

  4. Выводит корни уравнения.

Вася — очень порядочный мальчик, он любит порядок во всём.

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

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

Формат входных данных
Первая строка входных данных содержит целое число \(n\) (\(2 \le n \le 3 \cdot 10^{5}\)) — количество чисел в тетрадке у Васи.

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

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

Примечание

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

Во втором примере Васе можно приписать ко второму числу цифру 3, тогда числа станут равны 13, а значит, будут расположены по неубыванию. При этом 13 — это минимально возможное последнее число.

В третьем примере Вася может, например, получить числа 20, 25, 100. Возможны и другие варианты, но последнее число при любом способе дописывания цифр получится не меньше 100.

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

Для класса EvenList определите конструктор, который может принимать следующие виды параметров:

  • Ни одного параметра (в этом случае список будет пустой).
  • Один параметр типа List, в этом случае из переданного списка выбираются четные числа и записываются в результирующий список (в том же порядке следования, что и в исходном списке).
  • Объект EvenList, в этом случае список будет равняться списку объекта, переданного в конструктор (порядок элеметов должен сохраняться).
Добавьте в реализацию класса:
  1. Метод addnum(), который добавляет к списку число. Если методу addnum() передается целое четное число, то оно добавляется в список, все остальные варианты входных данных игнорируются, при этом выводится сообщение "Wrong data".
  2. Метод __sub__, позволяющий выполнять операцию «A - num», которая удаляет из объекта A класса EvenList все вхождения числа num. Если такого числа в списке нет, то  список не изменяется, при этом выводится сообщение "The number is missing". В результирующем списке порядок оставшихся элементов должен быть сохранен.
  3. Метод, который выводит элементы списка, где каждый элемент разделен символом точка с запятой (;).

На проверку отправьте только сам класс.

Что такое Интегрированная среда разработки (IDE)?

1) Программа для создания графических интерфейсов.

2) Система управления базами данных.

3) Средство упрощения разработки и отладки программ.

4) Инструмент для автоматического тестирования кода.

Какая основная задача компоновщика при создании исполняемого файла?

1) Проверка орфографии и грамматики в объектных файлах.

2) Объединение объектных файлов и разрешение межфайловых зависимостей.

3) Автоматическое создание объектных файлов из исходного кода.

4) Оптимизация размера исполняемого файла для экономии памяти.
Каким образом компилятор C++ обрабатывает файлы исходного кода при компиляции программы?

1) Последовательно просматривает каждый файл .cpp, проверяя их соответствие правилам C++ и переводя код в инструкции машинного языка.

2) Переносит код на другие уровни компиляции для оптимизации производительности программы.

3) Использует файлы .obj для хранения только ошибок компиляции и их номера строк.

4) Импортирует код из файлов .obj в код других программ для многократного использования.
Поделиться
Класснуть