Типы данных

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

Пользователь вводит слово. Выведите его длину (количество символов).

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

Одна строка — слово (без пробелов). Длина от 1 до 100 символов.

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

Одно целое число — длина слова.

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

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

Одна строка — слова через пробел (от 1 до 20 слов).

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

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

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

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

Одна строка — целые числа через пробел (от 1 до 20 чисел, каждое от \(-1000\) до \(1000\)).

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

Одно целое число — сумма всех введённых чисел.

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

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

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

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

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

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

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

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

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

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

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

Строки в формате Товар: цена для товаров с ценой больше 100, в порядке ввода. Если таких товаров нет, ничего не выводите.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Одна строка — слово (только строчные русские или латинские буквы, длина от 1 до 50).

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

Для каждой уникальной буквы — строка вида буква: количество, в алфавитном порядке букв.

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

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

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

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

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

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

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

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

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

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

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

\(N\) строк, каждая в формате Имя: возраст (в порядке ввода).

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

Дана строка ДНК, состоящая из символов 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\).

 

A + B#91346

Так как стандартная операция сложения слишком сложна, чтобы описать её в рамках этой страницы, мы введём свою операцию сложения <<+>>. Результатом сложения чисел \(A\) и \(B\) (обозначим \(A+B\)) назовём число, полученное приписыванием справа к \(A\) числа \(B\). Например \(20 + 25 = 2025\), а \(25 + 20 = 2520\). Как видите, \(A + B\) не всегда равно \(B + A\), так что найдите большее из них.

То есть по заданным \(A\) и \(B\) требуется найти наибольшее из чисел \(A+B\) и \(B+A\).

В единственной строке вводятся два целых числа \(A\) и \(B\) (\(0 < A, B < 1000\)).

Выведите единственное число — наибольшее из чисел \(A+B\) и \(B+A\).

🗂️
Шаг 7: Реестр героев
Средне
Ты добрался до центральной базы данных. Каждый герой имеет позывной и уровень силы. Чтобы собрать команду для атаки на вирус, нужно быстро находить героев и определять сильнейшего.
Условие задачи
 

В первой строке дано N пар «позывной:уровень» через пробел (двоеточие без пробелов). Во второй строке — M позывных через пробел для запроса.

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

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

Первая строка: пары позывной:уровень через пробел. Вторая строка: запросы через пробел.

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

Первая строка: уровни запрошенных героев через пробел. Вторая строка: позывной сильнейшего.

Подсказка: Разбей каждую пару через .split(":"), создай словарь. Для максимума: max(d, key=d.get).
🔍
Шаг 5: Частотный анализ
Средне
Мы засекли серию повторяющихся сигналов от вируса. Чтобы понять его логику, нужно определить, какой сигнал встречается чаще всего. Это ключевая частота!
Условие задачи
 

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

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

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

Одна строка: набор целых чисел через пробел (от 1 до 100 чисел, значения от 0 до 1000).

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

Две строки: число-лидер и его частота.

Подсказка: Собери частоты в словарь через d[x] = d.get(x, 0) + 1.
✓ 15✗ 14400лёгкаяВойти и решать

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

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

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

Например, если изначальное слово было <<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>> — в противоположном случае.


Фермер Джон детально записывает порядок прихода коров на дойку. Каждый час группа из трёх коров входит в амбар и ФД записывает их имена. Например, за 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 <= 50,000), например
)((()())())
Фермер джон знает, что задние ноги Беси выглядят как две соседних левых скобок ((, а пара ее передних ног выглядит, как пара соседних праваых скобок )). Поэтому местоположение Бес,и может быть описано парой индексов x < y таких, что (( находятся на позиции x, а )) находятся на позиции y.
Вычислите количество различных позиций, в которых может находится Беси.
PROBLEM NAME: cowfind
Формат входных данных
* Строка 1: строка из скобок, длиной N (1 <= N <= 50,000).
Формат выходных данных
* Строка 1: Количество позиций, в которых Беси может стоять (то есть количество таких различных пар (x,y), что x < y и (( стоят на позиции x, а )) стоят на позиции y )


Примечание
Всего имеется четыре варианта расположения Беси, они указаны ниже:
1. )((()())()) ^^ ^^
2. )((()())()) ^^ ^^
3. )((()())()) ^^ ^^
4. )((()())()) ^^ ^^

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

Будем рассматривать слова из строчных букв английского алфавита. Гласными считаются буквы <<a>>, <<e>>, <<i>>, <<o>>, <<u>>. Будем считать, что слово имеет женский род, если оно заканчивается на <<a>> (класс 1), либо на букву <<d>> (класс 2а), либо <<z>> (класс 2б), в этих двух случаях предпоследняя буква должна быть гласной, либо на буквосочетание <<ion>> (класс 3). В противном случае слово имеет мужской род.

Формат входных данных
На вход подана одна строка, содержащая слово, содержащее от 2 до 40 букв.

Формат выходных данных
Выведите <<f>>, если слово имеет женский род, либо <<m>>, если оно имеет мужской род.

 

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

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

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

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

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

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

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

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

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