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

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

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

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

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

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

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

Одна строка:

Средняя: X°C

где X — число с одним знаком после запятой.

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

Найдите максимальную и минимальную температуру за сутки.

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

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

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

Две строки:

Максимум: X°C
Минимум: Y°C

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

Раздел hourly содержит два параллельных массива по 24 элемента: time (время в формате "2026-04-16T15:00") и temperature_2m (температура).

Выведите строку:

Температура в HH:00: X°C

где HH:00 — время, X — целое число температуры.

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

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

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

Одна строка в указанном формате.

Вам на вход подаётся JSON-ответ от API погоды (раздел current) и название города.

Выведите строку в формате:

Город: T°C, ветер W м/с, влажность H%

где T, W, H — значения из JSON (как записаны, без округления).

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

Первая строка — JSON-объект с разделом current.
Вторая строка — название города.

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

Одна строка в указанном формате.

Вам на вход подаётся JSON-ответ от API погоды — это словарь с разделом current, внутри которого хранятся текущие метеоданные.

Выведите значение температуры (поле temperature_2m).

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

Одна строка — JSON-объект.

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

Одно число — температура (как оно записано в JSON, без дополнительного форматирования).

Примечание

В реальной программе эти данные вы бы получили через requests.get(...).json(), а здесь они подаются на вход. Парсить JSON можно так:

import json
data = json.loads(input())

Дано алгебраическое выражение со скобками (полином степени не выше 3) и целое число \(x_0\). Выполните два действия с помощью SymPy:

  1. Раскройте скобки — приведите выражение к стандартному виду полинома (без скобок, слагаемые по убыванию степени).

  2. Вычислите значение выражения при \(x=x_0\).

Формат ввода

Строка 1: выражение в синтаксисе Python (** — возведение в степень, * — умножение, переменная x). Строка 2: целое число \(x_0\) (\(-100\le x_0\le 100\)).

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

Ровно 2 строки:

expanded: <выражение>
value: <число>

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

(x + 3)**2
2

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

expanded: x**2 + 6*x + 9
value: 25

Разбор. \((x+3)^2 = x^2+6x+9\). Значение при \(x=2\): \(4+12+9=25\).

Подсказки. Для разбора строки: parse_expr(s, ...). Раскрытие скобок: expand(expr). Подстановка: expr.subs(x, x0).

Дана строка ДНК, состоящая из символов 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). Комплементарность: \(A \leftrightarrow T\), \(G \leftrightarrow C\); затем цепь разворачивается.

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

  5. Наиболее частый нуклеотид. При ничьей вывести тот, который идёт первым в алфавитном порядке (A < C < G < 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-состав: \((3+3+2+1)/15 = 9/15 \approx 46.67\%\). Кодоны GGC (\(3\,G/C\)) и CCT (\(2\,G/C\)) — итого 2 GC-богатых кодона. Наиболее частый нуклеотид: \(A=5, G=4, C=3, T=3\) — лидирует \(A\).

 

В ресторане отеля есть \(n\) видов специй. Каждый день повар выбирает \(m\) из них для главного блюда дня. Помощник главного повара тестирует блюдо и после этого оно поступает на обед в ресторан.

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

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

В первой содержатся целые числа \(n\) и \(m\) (\(1 \le m \le n \le 100\)) — число специй на складе и количество специй в главном блюде соответственно.

Далее в отдельной строке идет число \(k\) (\(0 \le k \le n\)) — число специй, на которые аллергия у помощника повара.

В следующих \(k\) строках содержатся названия специй, на которые есть аллергия у помощника повара.

В следующей строке написано число \(p\) (\(1 \le p \le 100\)) — число людей на обеде. Далее идет \(p\) блоков, описывающих специи, опасные для \(i\)-го участника обеда. Каждый блок начинается строкой с числом \(n_i\) (\(0 \le n_i \le n\)) — количеством продуктов, на которые аллергия у \(i\)-го человека, вслед за которым идёт \(n_i\) строк с названиями аллергенных специй.

Все названия — слова из латинских букв длиной не более 30 символов.

Для каждого из \(p\) запросов выведите на отдельной строке одно слово:

  • NO, если обед будет полностью безвреден для очередного гостя;

  • YES, если в главном блюде есть специя аллергенная для гостя;

  • MAYBE, если при таких исходных данных возможна и та, и другая ситуация.

Закончился туристический сезон, и почти все отдыхающие разъехались. Теперь у Портье почти не осталось работы, и он уже успел заскучать. Поначалу он пытался скоротать время, снова и снова убирая номера, решая судоку и раскладывая пасьянсы. Но все это ему быстро надоело.

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

После этого он берёт монетку и кладёт её на первую букву слова. Затем много раз (возможно, бесконечное число) он делает следующую операцию: если выбранном слове есть еще одна такая же буква, как и та, на которой лежит монетка, то портье перекладывает эту монетку на любую такую же букву. Если же буква, на которой лежит монетка встречается ровно один раз, то портье сдвигает монетку на следующую букву, а если следующей буквы в слове нет, то игра завершается.

Например, если изначальное слово было <<letovo>>, то монетка будет перемещаться следующим образом (положение монетки в отражено жирным подчёркнутым шрифтом):

  1. letovo

  2. letovo

  3. letovo

  4. letovo

  5. letovo

  6. letovo

  7. letovo

  8. \(\dots\)

Обратите внимание, что в примере выше игра никогда не завершится: монетка будет бесконечно долго перемещаться между двумя буквами <<o>>.

Помогите Портье: по данному вам слову длины \(n\), состоящему только из строчных букв латинского алфавита, узнать завершается ли на этом слове придуманная им игра.

В первой строке дано число \(n\) (\(1 \le n \le 100\,000\)) — длина строки.

Во второй строке дана строка \(s\), строка состоит только из строчных букв латинского алфавита.

Выведите <<YES>>, если игра завершается, и <<NO>> — в противоположном случае.

На орбитальной станции «Галактика-7» завершился ежегодный технический осмотр космических кораблей. По его результатам каждый корабль получил:

  • Оценки трёх бортовых систем: двигательной, навигационной и системы жизнеобеспечения (по шкале от 2 до 5, где 2 — критическая неисправность, 5 — отличное состояние)
  • Статус лицензии пилота: действующая или просроченная

Корабль допускается к полётам, если выполнены оба условия:

  1. Все три бортовые системы имеют оценку 3 или выше
  2. Лицензия пилота действующая

Корабль не допущен к полётам, если хотя бы одно из условий не выполнено.

Руководство станции решило предоставить возможность экстренного ремонта одной системы одному из кораблей. Корабль может претендовать на ремонт, если:

  1. Лицензия пилота действующая
  2. Ровно одна система имеет критическую неисправность (оценка 2), а две другие системы исправны (оценка 3 или выше)

Если таких кораблей несколько, выбирается тот, у которого наибольшая сумма оценок всех трёх систем (такой корабль ближе всего к допуску).

Гарантируется, что ровно один корабль удовлетворяет всем критериям отбора.
 

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

В первой строке находится число N — количество кораблей (1 ≤ N ≤ 1000).

Каждая из следующих N строк содержит пять целых чисел через пробел:

  • ID — бортовой номер корабля (натуральное число, не превышающее 108)
  • S1, S2, S3 — оценки трёх бортовых систем (каждая от 2 до 5)
  • L — статус лицензии пилота (1 — действующая, 0 — просроченная)
 

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

Выведите два числа через пробел:

  1. Количество кораблей, не допущенных к полётам
  2. Бортовой номер корабля, который получит возможность экстренного ремонта
Создадим эффект старой 8-битной графики! Разделим фото на блоки k×k и каждый блок заменим на один пиксель со средней яркостью. Программа получает на вход размеры фото n и m (оба делятся на k нацело), затем n строк по m чисел - пиксели, затем размер блока k. Программа должна вывести "пикселизированное" изображение: (n/k) строк по (m/k) чисел. Каждое число - это среднее арифметическое блока k×k из исходного изображения, округлённое вниз.
Структура папок и файлов компьютера представлена в формате JSON. Это рекурсивная структура: папка может содержать другие папки.
Найди и выведи имена всех файлов (элементов с `"type": "file"`), в каком бы вложенном уровне они ни находились.

Формат входных данных
JSON-объект, представляющий корневую папку:
- `"name"` — имя элемента
- `"type"` — тип: `"folder"` (папка) или `"file"` (файл)
- `"children"` — массив вложенных элементов (только для папок)

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

Формат входных данных
JSON-объект с полем `"orders"` — массив заказов. Каждый заказ имеет:
- `"order_id"` — номер заказа
- `"items"` — массив позиций, каждая позиция имеет `"name"` и `"price"`

Формат выходных данных
Одно число — общая выручка. Если число дробное, выведи с точностью до 2 знаков после запятой.
Библиотека хранит данные о книгах по жанрам в формате JSON. Структура вложенная: внутри объекта есть жанры, внутри жанров — списки книг.
Найди общее количество книг во всей библиотеке.

Формат входных данных
JSON-объект с полем `"genres"` — массив жанров. Каждый жанр имеет:
- `"name"` — название жанра
- `"books"` — массив книг (каждая книга — объект с полями title и author)

Формат выходных данных
Одно целое число — общее количество книг.
В школьной системе хранятся данные об учениках в формате JSON.
Найди и выведи имена всех отличников — учеников, у которых средний балл (average_score) больше или равен 90.

Формат входных данных
JSON-объект с полем `"students"` — массив учеников. Каждый ученик имеет поля:
- `"name"` — имя ученика
- `"class"` — класс
- `"average_score"` — средний балл (число от 0 до 100)

Формат выходных данных
Имена отличников, каждое на отдельной строке, в том порядке, в котором они встречаются во входных данных.
Если отличников нет — выведи Нет отличников.
 
Интернет-магазин хранит данные о корзине покупателя в формате JSON.
Дан JSON с информацией о корзине. Нужно вывести общее количество товаров в корзине (сумму всех `quantity`).

Формат входных данных
JSON-объект с полем items — массив товаров. Каждый товар имеет поля:
  • name — название товара
  • price — цена
  • quantity — количество
Формат выходных данных
Одно целое число — общее количество товаров.
 Дерево решений состоит из узлов двух типов:

1. Внутренний узел — содержит номер признака (feature_index) для разделения.
   Если значение признака = 0, идём в левое поддерево.
   Если значение признака = 1, идём в правое поддерево.

2. Лист — содержит предсказание (prediction), которое возвращается как ответ.
Пример дерева:
                    [feature_index 0]
                     /       \
                значение=0   значение=1
                   /           \
              [feature_index 1]    лист(1)
               /      \
           лист(0)  лист(1)
Для примера [0, 1, 0]:
- Корень: feature_index=0, значение признака 0 равно 0 → идём налево
- Узел: feature_index=1, значение признака 1 равно 1 → идём направо
- Лист: prediction=1 → ответ 1

Реализуй класс TreeNode с тремя методами:

1. __init__(self, feature_index=None, left=None, right=None, prediction=None)
   Сохраняет все параметры как атрибуты объекта.

2. is_leaf(self)
   Возвращает True, если узел является листом (у него есть prediction).
   Возвращает False, если узел внутренний.

3. predict_one(self, sample)
   Делает предсказание для одного примера.
   - Если узел — лист, возвращает prediction
   - Иначе смотрит на sample[feature_index]:
     - если 0 → рекурсивно вызывает predict_one у левого поддерева
     - если 1 → рекурсивно вызывает predict_one у правого поддерева

 
 

Примеры использования:

Пример 1
# Создание листа
leaf = TreeNode(prediction=1)
leaf.is_leaf()              # True
leaf.predict_one([0, 1, 0]) # 1

Пример 2
# Создание дерева глубины 1
tree = TreeNode(
    feature_index=0,
    left=TreeNode(prediction=0),
    right=TreeNode(prediction=1)
)
tree.is_leaf()              # False
tree.predict_one([0, 1, 0]) # 0 (sample[0]=0 → налево)
tree.predict_one([1, 0, 0]) # 1 (sample[0]=1 → направо)

🐛Нарисуй гусеницу

 

  1. Начни рисовать с точки (0, 0) (С тела гусеницы)
  2. Нарисуй 8 зелёных точек размером 40 пикселей (цвет зелёный)
  3. Каждая следующая точка должна быть на расстоянии 30 пикселей правее от центра предыдущей
  4. Голова гусеницы должна быть рамеров 50 пикселей
  5. Нарисуй левый глаз: белая точка размером 12 пикселей в позиции (235, 10) (цвет: "white") и чёрная точка (зрачок) размером 6 пикселей в позиции (235, 10) (цвет: "black")
  6. Нарисуй правый  глаз: белая точка размером 12 пикселей в позиции (250, 10) (цвет: "white") и чёрная точка (зрачок) размером 6 пикселей в позиции (250, 10) (цвет: "black")
  7. Нарисуй рот: чёрная точка  размером 4 пикселя в позиции (245, -5) (цвет: "black")
Н#80683

Нарисуйте букву "H" из трёх линий

  • Начальная точка: (0, 0)

  • Черепашка идёт вверх 100 (левая вертикаль), затем перемещается в (0, 50) без рисования,

  • Рисует горизонтальную линию вправо 50 (перекладина),

  • Перемещается в (50, 0) без рисования,

  • Рисует вертикаль вверх 100 (правая).

Буква должна состоять ровно из трех линий!

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

Формат входных данных
В первой строке записано натуральное число n (n <= 1000). Вторая и третья строки содержат соответственно время подготовки (в часах) и количество баллов набранных на экзамене i-м студентом (1<=i<=n). Все числа положительные целые. В первой строке числа не превышают 10, во второй строке - не превышают 100.

Выполните следующие задания
1. Создайте DataFrame из входных данных
2. Обучите модель LinearRegression
3. Предскажите оценку для студента, который готовился 5.5 часов
4. Во второй строке выведите через пробел два числа: коэффиценты k и b линии регрессии
6. В третьей строке выведите время подготовки, необходимое для получения чтобы получить 75 баллов 

Все числа необходимо вывести с точностью до одного знака после запятой
Поделиться
Класснуть