Информатика

2 621 задачавместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Программа получает на вход размеры матрицы n и m (количество строк и столбцов), затем элементы матрицы (n строк по m чисел в каждой), затем номер столбца k (нумерация с 1). Все числа целые, не превышают по модулю 1000. Программа должна вывести сумму элементов k-го столбца матрицы.
Программа получает на вход размеры матрицы n и m (количество строк и столбцов), затем элементы матрицы (n строк по m чисел в каждой), затем номер строки k (нумерация с 1). Все числа целые, не превышают по модулю 1000. Программа должна вывести сумму элементов k-й строки матрицы.
Программа получает на вход размеры матрицы n и m (количество строк и столбцов), затем элементы матрицы (n строк по m чисел в каждой). Все числа целые, не превышают по модулю 1000. Программа должна вывести количество положительных элементов в матрице.
Вы сделали классное фото, но оно получилось вертикальным, а нужно горизонтальное! Нужно транспонировать изображение - поменять строки и столбцы местами. Программа получает на вход размеры фотографии n и m (высота и ширина в пикселях), затем n строк по m чисел - яркость каждого пикселя (от 0 до 255). Программа должна вывести транспонированную матрицу: сначала новые размеры m и n, затем m строк по n чисел. При транспонировании элемент из позиции [i][j] переходит в позицию [j][i].
Структура папок и файлов компьютера представлена в формате 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 → направо)

На крыше дома в Простоквашино висит N сосулек. Каждую минуту все сосульки одновременно капают: каждая сосулька уменьшается на 1 сантиметр. Когда длина сосульки становится 0 или меньше, она падает и исчезает.

Дядя Фёдор хочет узнать, через сколько минут упадёт последняя сосулька.

Входные данные: В первой строке число N (1 ≤ N ≤ 1000). Во второй строке N целых чисел от 1 до 10000 — начальные длины сосулек.

Выходные данные: Через сколько минут упадёт последняя сосулька.

Матроскин украшает окно к Новому году. Окно представляет собой сетку N×M клеток. Он хочет нарисовать рамку по периметру окна (все крайние клетки) специальной краской. Сколько клеток нужно закрасить?

Входные данные: Два целых числа N и M (1 ≤ N, M ≤ 1000) — размеры окна. Каждое число записано в отдельной строке.

Выходные данные: Количество клеток в рамке.

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

Входные данные: В первой строке число N (1 ≤ N ≤ 10). Во второй строке N целых чисел от 1 до 1000 — радость от каждого подарка.

Выходные данные: Максимальная суммарная радость.

Дети Простоквашино выстроили N санок в ряд. Каждые санки имеют определённый вес. Дядя Фёдор хочет выбрать несколько санок подряд (непрерывный отрезок), чтобы их суммарный вес был как можно ближе к числу S (грузоподъёмность трактора), но не превышал его.

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

Входные данные: В первой строке два числа N и S (1 ≤ N ≤ 10, 1 ≤ S ≤ 10^6). Во второй строке N целых чисел от 1 до 10 — веса санок.

Выходные данные: Максимальный суммарный вес санок, не превышающий S. Если ни одни санки не помещаются, выведите 0.

Почтальон Печкин принёс в Простоквашино ёлку высотой H сантиметров. Каждый день ёлка осыпается и становится ниже на D сантиметров, но не может стать ниже нуля. Новый год наступит через N дней.

Какой высоты будет ёлка в новогоднюю ночь (после N дней осыпания)?

Входные данные: Три целых числа H, D, N (1 ≤ H ≤ 1000, 1 ≤ D ≤ 100, 1 ≤ N ≤ 100). Каждое число записано в отдельной строке.

Выходные данные: Высота ёлки в новогоднюю ночь.

Галчонок выучил N не обязательно разных слов и говорит их по очереди, повторяя циклически. Матроскин хочет узнать, сколько раз за день Галчонок скажет слово «kto-tam», если всего за день он произносит K слов.

Входные данные: В первой строке число N, во второй число K (1 ≤ N ≤ 100, 1 ≤ K ≤ 109) — количество слов, которые повторяет Галчонок и общее количество произнесённых слов. В следующих N строках записаны слова Галчонка в том порядке, как он их повторяет (строки состоят из маленьких латинских букв и дефисов, длиной до 20 символов).

Выходные данные: Сколько раз Галчонок скажет «kto-tam».

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

Входные данные: В первой строке число N (1 ≤ N ≤ 1000) — количество следов. Во второй строке N целых чисел от 1 до 100 — глубина каждого следа.

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

Шарик украшает ёлку гирляндой из N лампочек. Лампочки мигают по очереди: первая загорается в момент времени 0, вторая — в момент 1, третья — в момент 2, и так далее. Когда загорается последняя лампочка, следующей снова загорается первая, потом вторая и т.д.

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

Входные данные: Два целых числа N и T (1 ≤ N ≤ 1000, 0 ≤ T ≤ 109) — количество лампочек и момент времени.

Выходные данные: Номер лампочки, которая горит в момент T.

✓ 519✗ 900400лёгкаяВойти и решать

Матроскин готовит бутерброды для новогоднего стола. У него есть N кусков хлеба и M кусков колбасы. На каждый бутерброд нужен один кусок хлеба и два куска колбасы. Сколько бутербродов сможет приготовить Матроскин?

Входные данные: Два целых числа N и M (0 ≤ N, M ≤ 1000) — количество кусков хлеба и колбасы.  Каждое число записано в отдельной строке.

Выходные данные: Одно число — максимальное количество бутербродов.

Печка в Простоквашино работает интересно: каждый час она повышает температуру в доме на A градусов, но из-за щелей в стенах за тот же час уходит B градусов тепла. Сейчас в доме T градусов.

Матроскин считает, что комфортная температура — не меньше C градусов. Определите, будет ли в доме когда-нибудь комфортно, и если да — через сколько полных часов.

Входные данные: Четыре целых числа T, A, B, C (−50 ≤ T ≤ 50, 1 ≤ A ≤ 10, 1 ≤ B ≤ 10, 1 ≤ C ≤ 50) — начальная температура, прирост от печки, потери тепла и желаемая температура. Каждое число вводится в отдельной строке.

Выходные данные: Число часов до достижения комфортной температуры, или «Никогда», если температура не достигнет нужной.

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