Типы данных

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

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 test NO
2 Ocenka-5 YES
В строке записано предложением. Напишите программу, которая будет определять количество слов в нем. В предложении между словами только один пробел, в конце и в начале пробелов нет.

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 test 1
2 test test 2
В одной строке через пробел записаны число и некоторый текст. Напишите программу, которая выводит из текста те символы, номера которых кратны заданному числу (нумерация начинается с 1).

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 2 slovo lv
2 3 test test stt
В одной строке записаны символ и некторый текст. Напишите программу, которая заменяет все символы текста, стоящие на четных местах, заданным символом. Нумерация символов начинается с 1.

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 t slovo stoto
2 a test test tasa aeat
В одной строке через пробел заданы два символа и некоторый текст. Напишите программу, которая заменить в тексте все буквы, совпадающие с первым символом, на второй.

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 a b slovo slovo
2 r t rr rr tt tt

Контрольная состоит из четырёх обязательных задач с номерами от 1 до 4. В журнале записаны идентификатор ученика, номер задачи и балл за отправленное решение. Одну задачу можно отправлять несколько раз.

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

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

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

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

В первой строке дано целое число N — количество записей (1 ≤ N ≤ 100000).

В каждой из следующих N строк даны три целых числа: идентификатор ученика, номер задачи и балл за попытку. Идентификатор находится в диапазоне от 1 до 1000000000 включительно, номер задачи — от 1 до 4, балл — от 0 до 100. Записи перечислены в порядке отправки решений; он может быть любым относительно номеров учеников и задач.

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

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

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

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

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

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

В первой строке дано целое число N — количество записей (1 ≤ N ≤ 100000).

В каждой из следующих N строк даны три целых числа: идентификатор участника, номер задачи и балл за попытку. Идентификаторы участников и номера задач находятся в диапазоне от 1 до 1000000000 включительно, баллы — от 0 до 100 включительно. Записи перечислены в порядке отправки решений; он может быть любым относительно номеров участников и задач.

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

Выведите через пробел идентификатор победителя и его итоговый балл.

Датчики передают измерения температуры. Каждая запись содержит номер датчика и целую температуру. Один датчик может передать несколько измерений.

Датчик считается подходящим, если одновременно выполнены два условия:

  • он передал не менее K измерений;
  • разность между наибольшей и наименьшей переданными им температурами не превышает D.

Определите количество подходящих датчиков и наименьший номер среди них. Учитывайте только датчики, представленные в журнале.

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

В первой строке даны три целых числа N, K и D: количество записей, необходимое количество измерений и допустимая разность температур. Ограничения: 1 ≤ N ≤ 100000, 1 ≤ K ≤ 100000, 0 ≤ D ≤ 200.

В каждой из следующих N строк даны номер датчика и температура. Номер датчика — целое число от 1 до 1000000000 включительно, температура — целое число от −100 до 100 включительно. Записи перечислены в произвольном порядке.

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

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

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

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

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

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

Оба набора данных поступают последовательно через стандартный ввод.

Сначала дано целое число N — количество товаров в справочнике (1 ≤ N ≤ 100000). Следующие N строк содержат по два целых числа: код товара и цену одной единицы в рублях. Все коды в справочнике различны.

Затем дано целое число M — количество записей в журнале продаж (1 ≤ M ≤ 100000). Следующие M строк содержат по три целых числа: номер магазина, код товара и количество проданных единиц.

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

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

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

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

Найдите пару «магазин — товар» с наибольшим суммарным количеством проданных единиц. Если таких пар несколько, выберите пару с меньшим номером магазина. Если и номер магазина совпадает, выберите меньший код товара.

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

В первой строке дано целое число N — количество записей (1 ≤ N ≤ 100000).

В каждой из следующих N строк записаны три целых числа: номер магазина, код товара и количество проданных единиц. Каждое из этих чисел находится в диапазоне от 1 до 1000000000 включительно. Записи перечислены в произвольном порядке.

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

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

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

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

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

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

В первой строке дано целое число N — количество строк таблицы (1 ≤ N ≤ 100 000).

Каждая из следующих N строк содержит ровно шесть целых чисел от 1 до 109 включительно, разделённых пробелами.

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

Выведите одно целое число — количество строк, удовлетворяющих обоим условиям.

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

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

Тройки могут пересекаться: каждое возможное положение начала тройки рассматривается отдельно. Третья буква также может совпадать с первыми двумя. Гарантируется, что хотя бы одна подходящая тройка существует.

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

В единственной строке дана строка длиной от 3 до 1 000 000 символов. Все символы — заглавные латинские буквы от A до Z.

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

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

Участники выполняют несколько попыток. Для каждой попытки известны идентификатор участника и набранный им балл. В зачёт участнику идёт только лучший из всех его результатов.

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

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

В первой строке даны два целых числа: количество попыток N и порог P (1 ≤ N ≤ 100 000, 0 ≤ P ≤ 100).

В каждой из следующих N строк записаны идентификатор участника и балл за одну попытку. Идентификатор — целое число от 1 до 109, балл — целое число от 0 до 100. Записи могут идти в любом порядке.

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

Выведите одно целое число — количество участников с зачётным результатом не меньше P.

В журнале сервера для каждого запроса записаны идентификатор клиента и объём переданных им данных в килобайтах. Один клиент может выполнить несколько запросов.

Определите клиента, который передал наибольший суммарный объём данных за все свои запросы. Если таких клиентов несколько, выберите клиента с наименьшим идентификатором.

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

В первой строке дано целое число N — количество записей журнала (1 ≤ N ≤ 100 000).

В каждой из следующих N строк записаны два целых числа: идентификатор клиента и объём данных одного запроса. Оба числа находятся в диапазоне от 1 до 109 включительно. Записи могут идти в любом порядке.

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

Выведите через пробел идентификатор выбранного клиента и суммарный объём переданных им данных в килобайтах.

Дана последовательность целых чисел. Найдите число, которое встречается в ней чаще всего, и количество его появлений.

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

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

В первой строке дано целое число N — количество элементов последовательности (1 ≤ N ≤ 100 000).

Во второй строке записаны N целых чисел через пробел. Каждое число находится в диапазоне от −109 до 109 включительно.

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

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

Дана последовательность целых чисел. Для каждого различного числа определите, сколько раз оно встречается в последовательности.

Выведите каждое различное число вместе с количеством его появлений. Числа в ответе должны идти по возрастанию.

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

В первой строке дано целое число N — количество элементов последовательности (1 ≤ N ≤ 100 000).

Во второй строке записаны N целых чисел через пробел. Каждое число находится в диапазоне от −109 до 109 включительно.

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

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

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

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

Скопируйте подготовленный код и допишите сохранение показания. Последний цикл уже выводит готовый результат в нужном порядке; сортировка используется только для вывода.

n = int(input())
last = {}
for _ in range(n):
    sensor, temperature = map(int, input().split())
    # Сохраните последнее показание этого датчика

for sensor, temperature in sorted(last.items()):
    print(sensor, temperature)
Входные данные

Первая строка содержит число записей N (1 ≤ N ≤ 100 000). В следующих N строках записаны два целых числа через пробел: номер датчика от 1 до 109 и температура от −100 до 100 включительно.

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

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

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

Для каждого запроса выведите цену известного товара или слово НЕТ, если указанного кода нет. Цена 0 допустима и означает, что товар бесплатный.

Скопируйте подготовленный код и допишите обработку запроса внутри последнего цикла.

n = int(input())
prices = {}
for _ in range(n):
    product, price = input().split()
    prices[product] = int(price)

m = int(input())
for _ in range(m):
    product = input()
    # Выведите цену известного товара или слово НЕТ
Входные данные

Первая строка содержит целое число N — количество товаров (1 ≤ N ≤ 10 000). Следующие N строк содержат код товара и целую цену через пробел. Коды различны.

Код — строка длиной от 1 до 20 символов, состоящая из латинских букв и цифр. Регистр букв имеет значение; ведущие нули являются частью кода. Цена находится в диапазоне от 0 до 109 рублей включительно.

Затем вводится целое число M — количество запросов (1 ≤ M ≤ 10 000). В каждой из следующих M строк находится один код товара.

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

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

Для каждого запроса выведите в отдельной строке цену либо слово НЕТ прописными русскими буквами. Ответы должны идти в порядке запросов.

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

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

n = int(input())
prices = {}
for _ in range(n):
    product, price = input().split()
    price = int(price)
    # Добавьте товар и его цену в словарь

m = int(input())
for _ in range(m):
    product = input()
    print(prices[product])
Входные данные

Первая строка содержит целое число N — количество товаров (1 ≤ N ≤ 10 000). Следующие N строк содержат код товара и целую цену через пробел. Коды различны.

Код — строка длиной от 1 до 20 символов, состоящая из латинских букв и цифр. Регистр букв имеет значение; ведущие нули являются частью кода. Цена находится в диапазоне от 0 до 109 рублей включительно.

Затем вводится целое число M — количество запросов (1 ≤ M ≤ 10 000). В каждой из следующих M строк находится один код товара.

Гарантируется, что каждый запрашиваемый код присутствует среди первых N записей.

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

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

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

Программа получает код одного товара. Допишите вывод цены этого товара. Скопируйте подготовленный код и замените комментарий своей строкой.

prices = {
    'pen': 35,
    'pencil': 20,
    'notebook': 70,
    'ruler': 45,
    'eraser': 20,
    'marker': 90,
    'folder': 120,
    'paper': 350
}

product = input()
# Допишите вывод цены товара
Входные данные

Одна строка содержит один из кодов, перечисленных в словаре. Код записан строчными латинскими буквами. Гарантируется, что он присутствует в словаре.

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

Выведите одно целое число — цену указанного товара в рублях. Другой текст выводить не нужно.

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