Словари

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

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

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

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

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

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

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

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

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

Группы анаграмм (только те, где больше одного слова). Слова в группе через пробел в алфавитном порядке. Каждая группа на отдельной строке.

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

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

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

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

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

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

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

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

Группы анаграмм (только те, где больше одного слова). Слова в группе через пробел в алфавитном порядке. Каждая группа на отдельной строке.

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

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

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

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

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

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

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

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

Группы анаграмм (только те, где больше одного слова). Слова в группе через пробел в алфавитном порядке. Каждая группа на отдельной строке.

Примечание

Подсказка: два слова — анаграммы, если при сортировке их букв получается одинаковый результат. Например, sorted("кот") и sorted("ток") оба дают ['к', 'о', 'т'].

Учитель ведёт журнал сдачи домашних заданий. На вход подаётся число \(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\). Если таких нет, ничего не выводить.

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

\(N\) строк в формате Имя — оценка, отсортированные по имени (алфавитный порядок).

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

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

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

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

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

\(N\) строк в формате Имя — оценка (в порядке ввода).

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

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

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

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

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

\(N\) строк — оценки (в порядке ввода).

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

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

Три строки, в каждой — название предмета (одно слово) и целочисленная оценка через пробел.

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

Три строки в формате Предмет — оценка (в порядке ввода).


Фермер Джон детально записывает порядок прихода коров на дойку. Каждый час группа из трёх коров входит в амбар и ФД записывает их имена. Например, за 5 часов он имеет такой список, где каждая строка соответствует группе вошедших коров:
BESSIE ELSIE MATILDA FRAN BESSIE INGRID BESSIE ELSIE MATILDA MATILDA INGRID FRAN ELSIE BESSIE MATILDA
ФД заметил, что одна и та же группа коров может несколько раз появляться в этом списке. Например, группа BESSIE, ELSIE и MATILDA появляется три раза (ФД необязательно записывает их имена в одинаковом порядке при каждом входе в амбар).
Помогите ФД посчитать количество приходов той группы, которая пришла наибольшее количество раз.
PROBLEM NAME: records
Формат входных данных
* Строка 1: Количество часов, N, в течение которых ФД вёл запись (1 <= N <= 1000).
* Строки 2..1+N: Каждая строка содержит список из трёх разделенных одиночными пробелами имён. Каждое имя имеет длину от 1 до 10 символов и стоит только из символов A-Z.


Формат выходных данных
* Строка 1: Количество приходов той группы, которая пришла наибольшее количество раз.
Примечание
Группа {BESSIE, ELSIE, MATILDA} вошла в амбар 3 раза.

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

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

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

Во второй строке — N целых чисел первого массива (1 ≤ число ≤ 1000000).

В третьей строке — число M (1 ≤ M ≤ 100000).

В четвёртой строке — M целых чисел второго массива.

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

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

Волшебник Мерлин управляет своей библиотекой заклинаний. Он может выполнять три типа операций:

+ X — добавить книгу с номером X в библиотеку

- X — убрать книгу с номером X из библиотеки

? X — проверить, есть ли книга с номером X в библиотеке

Помоги Мерлину ответить на все его вопросы!

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

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

В следующих Q строках — операции в формате: "+ X", "- X" или "? X" (1 ≤ X ≤ 1000000).

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

Для каждой операции "?" выведите "YES", если книга есть в библиотеке, или "NO", если её нет.

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

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

В первой строке — число N (1 ≤ N ≤ 100000) — количество купленных карточек.

Во второй строке — N целых чисел — номера покемонов на карточках (1 ≤ номер ≤ 1000000).

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

Одно число — количество уникальных покемонов в коллекции.

66401#66401
Группа молодых энтузиастов "МэК" захотели посчитать сколько сантиметров проходит палец сотрудника колл-центра, когда тот набирает номер телефона клиента на циферблате. Для начального варианта программы достаточно считать сколько палец прошёл в одном из направлений, по горизонтали или по вертикали. Расстояние между центрами всех кнопок равно 1, считается, что всегда нажимается центр кнопки.
Расстояние кнопок по диагонали (45 градусов), например между "1" и "5" равно 1.4. Расстояние между Кнопками под 30 градусов, например между "1" и "6" равно 2,2. Расстояние между "1" и "0", а также между "3" и "0" равно 3.1. Начальная позиция пальца оператора всегда на той цифра с которой начинается номер телефона.

Формат входных данных
На вход программы поступает номер телефона, содержащий от 2 до 20 цифр. Также направления: 0 - горизонталь, 1 - вертикаль.
Формат выходных данных
На выходе программа выдаёт число, равное пройденному расстоянию. Например: номер телефона 8965, считаем горизонталь. Из 8 в 9 +1, из 9 в 6 нет движения по горизонтали, из 6 в 5 +1. Общее пройденное расстояние равно 2.
Циферблат:
123
456
789
0
65961#65961
Агрохолдинг «Дикое Поле» анализирует результаты сбора урожая. Известно, сколько тонн зерна убрали на каждом из N полей, находящихся в распоряжении холдинга. Так как несколько огромных полей сильно влияют на среднее, в агрохолдинге решили ввести другую метрику. Опорными называются поля, урожай с которых превышает пороговое значение, но меньше среднего. Определите наиболее часто встречающийся урожай с опорного поля.
Формат ввода
На вход программе в первой строке подаётся натуральное число N (N ≤ 1000) – количество полей. Во второй строке подаётся натуральное число M (M≤ 100 т) – пороговое значение урожая с поля. Далее в N строках идёт по одному натуральному числу mi – масса урожая с поля номер i (1≤ mi ≤1000 т).
Формат вывода
Вывести одно целое число – наиболее часто встречающийся урожай с опорного поля. Если таких значений несколько, выведите наибольшее. Если таких значений нет, выведите 0.
У Фили есть квадратная матрица A размера N×N, но она кажется ему слишком большой. Ему гораздо больше нравятся матрицы размера k×k (k<N).
Филя хочет получить матрицу нужного размера взяв некоторую подматрицу исходной матрицы.
Подматрицей k×k матрицы A в данном случае Филя считает матрицу B такую, что bi,j=ai+x,j+y, для всех i, j от 1 до k. Из данного определения можно заметить, что подматрица исходной матрицы задается парой чисел (x, y).
Для того, чтобы выбрать наиболее интересную для себя подматрицу, Филя хочет узнать, сколько есть способов выбрать из исходной матрицы две различные (характеризующие пары (x, y) отличаются хотя бы в одной позиции) равные подматрицы k×k. Две матрицы Q и P размера k×k считаются равными, если для любых i,j:1≤i,j≤k выполняется qi,j=pi,j.
Если условия равенства не выполняется, матрицы считаются неравными.

Входные данные
В первой строке входного файла содержатся два натуральных числа N и k - размеры исходной и нужной матрицы.
(1<=k<=N<=10). В следующих N строках заданы через пробел по N натуральных чисел ai,j - элементы исходной матрицы (1<=ai,j<10).

Выходные данные
В единственной строке выходного файла выведите одно число - количество способов выбрать из исходной матрицы две различные равные подматрицы размера k×k.
 
Примеры
Входные данные Выходные данные
1 3 1
1 2 3
4 5 6
7 8 9
0
2 3 1
1 1 1
1 1 1
1 1 1
36
3 3 2
1 2 1
1 1 2
1 1 1
1

БЕСКОНЕЧНЫЙ ВВОД PYTHON?
На летних сборах по программированию за каждую решенную задачу давали некоторое количество фанфиков. В течении смены юные программисты могли тратить эти фанфики на покупку различных ништячков. По окончании смены у организаторов скопился большой список, каждая строка которого представляет собой запись вида Программист ништячок количество, где Программист имя юного программиста (строка без пробелов), ништячок - наименование купленного ништячка (строка без пробелов), количество — количество приобретенных единиц ништячка. 

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

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

Выходные данные
Выведите список всех покупателей в лексикографическом порядке, после имени каждого покупателя выведите, в круглых скобках, общее число приобретенных ништячков, затем, после двоеточия, выведите список названий всех приобретенных данным программистом ништячков в лексикографическом порядке, после названия каждого ништячка выведите количество единиц приобретенного ништячка. Информация о каждом ништячке выводится в отдельной строке.
 
Примеры
Входные данные Выходные данные
1
Ivanov paper 10
Petrov pens 5
Ivanov marker 3
Ivanov paper 7
Petrov envelope 20
Ivanov envelope 5
Ivanov:
envelope 5
marker 3
paper 17
Petrov:
envelope 20
pens 5
Поделиться
Класснуть