Информатика

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

На испытательном стенде расположена сетка из \(n\times m\) датчиков. В каждой ячейке — целое показание датчика. Вычислите:

  • максимумы по строкам \(r_i = \max_j a_{ij}\);

  • минимумы по столбцам \(c_j = \min_i a_{ij}\).

Формат ввода

Первая строка: \(n\) и \(m\) (\(1\le n,m\le 500\)). Следующие \(n\) строк по \(m\) целых чисел.

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

Строка 1: \(n\) чисел — максимумы по строкам. Строка 2: \(m\) чисел — минимумы по столбцам.

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

3 3
5 12 8
3 7 15
10 6 4

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

12 15 10
3 6 4

Подсказка. np.max(axis=1) и np.min(axis=0).

Выполните Z-нормализацию (стандартизацию) массива: \(z_i = \frac{a_i - \bar{a}}{\sigma},\)  где \(\bar{a}\) — среднее, \(\sigma\) — стандартное отклонение (ddof=0). После стандартизации среднее \(\approx 0\), стандартное отклонение \(\approx 1\).

Формат ввода

Первая строка — \(n\) (\(2\le n\le 10^5\)). Вторая строка — \(n\) вещественных чисел. Гарантируется \(\sigma>0\).

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

Одна строка — \(n\) чисел, каждое округлено до 4 знаков, через пробел.

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

5
10.0 20.0 30.0 40.0 50.0

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

-1.4142 -0.7071 0.0000 0.7071 1.4142

Подсказка. np.mean(), np.std() и поэлементные операции NumPy.

В физической лаборатории проведена серия измерений ускорения свободного падения \(g\) (м/с\(^2\)). Дан массив из \(n\) вещественных чисел. С помощью NumPy вычислите пять характеристик.

Формат ввода

Первая строка — \(n\) (\(1\le n\le 10^5\)). Вторая строка — \(n\) вещественных чисел через пробел.

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

Пять строк (значение округлено до 4 знаков после запятой):

  • count — количество элементов \(n\);

  • sum — сумма: \(S=\sum a_i\);

  • mean — среднее: \(\bar{a}=S/n\);

  • range — размах: \(\max(a)-\min(a)\);

  • variance — дисперсия: \(D=\frac{1}{n}\sum(a_i-\bar{a})^2\).

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

5
9.78 9.82 9.81 9.79 9.80

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

count: 5
sum: 49.0000
mean: 9.8000
range: 0.0400
variance: 0.0002

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

  1. Разложите на множители — приведите полином к произведению неприводимых множителей.

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

Формат ввода

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

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

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

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

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

x**2 - 4
3

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

factored: (x - 2)*(x + 2)
value: 5

Разбор. \(x^2-4=(x-2)(x+2)\) (разность квадратов). Значение при \(x=3\): \(3^2-4=9-4=5\).

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

Ты открыл DevTools в браузере (F12) и увидел, как твой браузер общается с сервером. Первая строка запроса выглядит так:

GET /about HTTP/1.1

Это называется стартовая строка

Какая из частей является путём (тем самым, что мы пишем в @app.route(...))?

  1. GET
  2. /about
  3. HTTP/1.1
  4. GET /about

Вася позвонил в пиццерию и сказал: «Мне большую пепперони!». Повар приготовил пиццу, и курьер привёз её домой.

Если сравнить это с открытием сайта в браузере, то звонок Васи (момент, когда он сказал, что хочет пиццу) — это:

  1. Браузер
  2. HTTP-запрос
  3. HTTP-ответ
  4. DNS-сервер

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

В первой строке ввода находится единственное целое число \(t\) — количество тестовых случаев, которые вам будет необходимо обработать \((1 \leq t \leq 100)\).

Первая строка каждого тестового случая содержит целые числа \(n\), \(m\) и \(k\) — количество вершин и рёбер графа, а также количество доступных цветов \((1 \leq n \leq 30, 1 \leq m \leq 40, 1 \leq k \leq 11)\). Обратите внимание, что с ростом \(n\) значение \(k\) в тестах убывает.

Следующие \(m\) строк содержат по два целых числа \(u, v\), задающих рёбра графа.

Для каждого тестового случая выведите единственное число — количество красивых раскрасок графа по модулю \(10^9+7\).

Планарный граф — граф, который можно изобразить на плоскости без пересечений рёбер не по вершинам.

В тесте из условия задан следующий граф:

image

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

В первой строке ввода находится единственное целое число \(t\) — количество тестовых случаев, которые вам будет необходимо обработать \((1 \leq t \leq 100)\).

Первая строка каждого тестового случая содержит целые числа \(n\), \(m\) и \(k\) — количество вершин и рёбер графа, а также количество доступных цветов \((1 \leq n \leq 30, 1\leq m \leq 40, 1\leq k\leq 11)\).

Следующие \(m\) строках содержат по два целых числа \(u, v\), задающих рёбра графа.

Для каждого тестового случая выведите единственное число — количество красивых раскрасок графа по модулю \(10^9+7\). Гарантируется, что до взятия по модулю ответ не превосходит \(50\cdot 10^6\).

Планарный граф — граф, который можно изобразить на плоскости без пересечений рёбер не по вершинам.

В тесте из условия задан следующий граф:

image

Интернет-магазин ведёт лог заказов. На вход подаётся число \(N\) — количество записей. Затем \(N\) строк в формате:

имя товар цена

Один покупатель может делать несколько заказов.

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

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

Первая строка — целое число \(N\) (\(1 \le N \le 30\)).

Следующие \(N\) строк — имя, товар и цена через пробел.

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

Для каждого покупателя строка в формате: Имя — X заказов, Y руб

Ведётся протокол голов в чемпионате по футболу. На вход подаётся число \(N\) — количество записей. Затем \(N\) строк в формате:

имя матч голы

Один игрок может забивать в нескольких матчах.

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

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

Первая строка — целое число \(N\) (\(1 \le N \le 30\)).

Следующие \(N\) строк — имя, номер матча и голы через пробел.

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

Для каждого игрока строка в формате: Имя — X голов, Y матчей

В зоопарке записали массу животных. На вход подаётся число \(N\) — количество животных. Затем вводятся \(N\) строк, в каждой через пробел: название животного и его масса в кг (целое число).

Программа должна собрать данные в словарь и вывести только тех животных, чья масса \(\ge 100\) кг, в формате Животное — масса, в порядке ввода.

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

Первая строка — целое число \(N\) (\(1 \le N \le 15\)).

Следующие \(N\) строк — название и масса через пробел. Названия уникальны (одно слово).

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

Строки в формате Животное — масса для животных с массой \(\ge 100\). Если таких нет, ничего не выводить.

На вход подаётся число \(N\) — количество товаров. Затем вводятся \(N\) строк, в каждой через пробел: название товара и его цена (целое число).

Программа должна собрать данные в словарь и вывести только те товары, цена которых строго больше 500, в формате Товар — цена, в порядке ввода.

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

Первая строка — целое число \(N\) (\(1 \le N \le 15\)).

Следующие \(N\) строк — название и цена через пробел. Названия уникальны (одно слово).

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

Строки в формате Товар — цена для товаров с ценой \(> 500\). Если таких нет, ничего не выводить.

На вход подаётся число \(N\) — количество учеников. Затем вводятся \(N\) строк, в каждой через пробел: имя ученика и его средний балл (целое число).

Программа должна собрать данные в словарь и вывести только тех учеников, чей средний балл \(\ge 5\), в формате Имя — балл, в порядке ввода.

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

Первая строка — целое число \(N\) (\(1 \le N \le 15\)).

Следующие \(N\) строк — имя и балл через пробел. Имена уникальны.

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

Строки в формате Имя — балл для учеников с баллом \(\ge 5\). Если таких нет, ничего не выводить.

Метеостанция записала температуру за несколько дней. На вход подаётся число \(N\) — количество дней. Затем вводятся \(N\) целых чисел (каждое с новой строки) — температура каждого дня.

Программа должна:

  • Собрать все числа в список
  • Отсортировать список по возрастанию
  • Вывести отсортированный список
  • Вывести три наибольших значения (последние 3 элемента отсортированного списка)

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

Первая строка — целое число \(N\) (\(3 \le N \le 20\)).

Следующие \(N\) строк — по одному целому числу (от \(-50\) до \(50\)).

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

Первая строка — отсортированный список в формате [a, b, c, ...].

Вторая строка — три наибольших значения в формате Топ-3: [x, y, z].

В школе прошёл экзамен. На вход подаётся число \(N\) — количество учеников. Затем вводятся \(N\) целых чисел (каждое с новой строки) — баллы учеников.

Программа должна:

  • Собрать все числа в список
  • Отсортировать список по возрастанию
  • Вывести отсортированный список
  • Вывести три наибольших значения (последние 3 элемента отсортированного списка)

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

Первая строка — целое число \(N\) (\(3 \le N \le 20\)).

Следующие \(N\) строк — по одному целому числу (от 0 до 100) — балл ученика.

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

Первая строка — отсортированный список в формате [a, b, c, ...].

Вторая строка — три наибольших значения в формате Топ-3: [x, y, z].

Пользователь вводит количество чисел, а затем сами числа — каждое на отдельной строке. Сохраните все числа в список.

Вычислите размах — разницу между максимальным и минимальным числом.

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

  1. Исходный список — числа через пробел.
  2. Размах (максимум минус минимум).

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

Первая строка — целое число \(N\) (\(1 \le N \le 20\)).

Следующие \(N\) строк — по одному целому числу (от \(-1000\) до \(1000\)).

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

Первая строка — исходный список через пробел.

Вторая строка — размах.

Пользователь вводит количество чисел, а затем сами числа — каждое на отдельной строке. Сохраните все числа в список.

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

  1. Исходный список — числа через пробел.
  2. Количество уникальных (различных) чисел.
  3. Уникальные числа через пробел в порядке возрастания.

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

Первая строка — целое число \(N\) (\(1 \le N \le 20\)).

Следующие \(N\) строк — по одному целому числу (от \(-1000\) до \(1000\)).

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

Первая строка — исходный список через пробел.

Вторая строка — количество уникальных чисел.

Третья строка — уникальные числа в порядке возрастания через пробел.

Примечание

Подсказка: преобразуйте список в множество с помощью set(), затем отсортируйте.

Пользователь вводит количество чисел, затем сами числа — каждое на отдельной строке, и наконец — число, которое нужно найти. Сохраните числа в список.

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

  1. Исходный список — числа через пробел.
  2. Сколько раз искомое число встречается в списке.

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

Первая строка — целое число \(N\) (\(1 \le N \le 20\)).

Следующие \(N\) строк — по одному целому числу.

Последняя строка — искомое число \(X\).

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

Первая строка — исходный список через пробел.

Вторая строка — количество вхождений числа \(X\) в список.

Примечание

Подсказка: используйте метод .count().

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