Информатика

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

Чему равно значение выражения в системе счисления с основанием 16?

\(3\mathrm{A}{,}\mathrm{C}_{16} - 110{,}101_2 + 14{,}4_8\)

В ответе укажите только число (целую и дробную часть через запятую), основание указывать не нужно.

Чему равно значение выражения в системе счисления с основанием 8?

\(10110{,}11_2 + 15{,}4_8 - \mathrm{B}{,}8_{16}\)

В ответе укажите только число (целую и дробную часть через запятую), основание указывать не нужно.

Чему равно значение выражения в системе счисления с основанием 16?

\(11011{,}101_2 - 12{,}6_8 + 1\mathrm{F}{,}\mathrm{A}_{16}\)

В ответе укажите только число (целую и дробную часть через запятую), основание указывать не нужно.

Чему равно значение выражения в системе счисления с основанием 16?

\(1111{,}01_2 + 2\mathrm{C}{,}4_{16} - 7{,}2_8\)

В ответе укажите только число (целую и дробную часть через запятую), основание указывать не нужно.

Чему равно значение выражения в системе счисления с основанием 8?

\(1100{,}1_2 + 7{,}4_8 - \mathrm{A}{,}8_{16}\)

В ответе укажите только число (целую и дробную часть через запятую), основание указывать не нужно.

Чему равно значение выражения в системе счисления с основанием 16?

\(1010{,}1_2 + 1\mathrm{A}{,}8_{16} - 3{,}4_8\)

В ответе укажите только число (целую и дробную часть через запятую), основание указывать не нужно.

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

На вход подаётся число \(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 баллов

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

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

  1. Исходный список — числа через пробел.
  2. Среднее арифметическое, округлённое до 1 знака после запятой.
  3. Числа, которые строго больше среднего, через пробел (в порядке ввода). Если таких нет — пустая строка.

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

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

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

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

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

Вторая строка — среднее с одним знаком после запятой.

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

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

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

  1. Исходный список — числа через пробел.
  2. Среднее арифметическое, округлённое до 1 знака после запятой.

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

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

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

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

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

Вторая строка — среднее арифметическое с одним знаком после запятой.

Примечание

Подсказка: среднее = сумма / количество. Для вывода используйте round(x, 1).

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

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

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

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

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

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

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

Две строки: исходный список и отсортированный по алфавиту, слова через пробел.

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

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

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

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

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

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

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

Две строки: исходный список и отсортированный по возрастанию, числа через пробел.

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

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

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

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

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

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

Фермер Джон на старости лет стал параноиком. Он построил огромную изгородь вокруг фермы для защиты своих коров. Коровам такая идея не понравилась.

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

Для каждой из \(N\) коров, посещающих ферму, вам сообщается время, когда она прибывает к воротам и количество времени, которое её требуется для ответов на вопросы. В каждый момент времени только одна корова опрашивается, поэтому, если много коров прибывает примерно в одно и то же время, они должны ждать своей очереди отвечать на вопросы. Например, если корова прибыла во время 5 и отвечает на вопросы 7 единиц времени, то другая корова, прибывшая во время 8 должна подождать до времени 12, что начать отвечать на вопросы.

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

ФОРМАТ ВВОДА (файл cowqueue.in):

Первая строка ввода содержит \(N\), положительное целое число, не более 100. Каждая из последующих \(N\) строк описывает одну корову, задавая время прибытия и время, которое требуется ей для ответов на вопросы. Каждое из этих чисел - положительное целое число не более 1,000,000.

ФОРМАТ ВЫВОДА (файл cowqueue.out):

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

После нескольких месяцев репетиций, коровы готовы дать ежегодное танцевальное представление - балет "Cowpelia".

Остался непрояснённым только размер сцены. Сцена размера \(K\) может выдержать \(K\) коров, танцующих одновременно. \(N\) коров в стаде (\(1 \leq N \leq 10,000\)) пронумерованы последовательно \(1 \ldots N\) в порядке, в котором они должны появиться на сцене во время танца. Каждая корова \(i\) планирует танцевать определённое время \(d(i)\). Изначально коровы \(1 \ldots K\) появляются на сцене и начинают танцевать. Когда первая из этих коров завершит свой танец, она покидает сцену и корова \(K+1\) немедленно начинает танцевать и т.д. Поэтому всегда \(K\) коров танцуют, за исключением последнего отрезка шоу, когда коровы уходят, но не добавляются. Шоу завершается, когда последняя корова завершит свой танец в момент времени \(T\).

Понятно, что чем больше значение \(K\), тем меньше время \(T\). Поскольку шоу не может длится очень долго, вам на вводе даётся верхняя граница \(T_{max}\), указывающая максимально возможное значение величины \(T\). Ваша задача - определить минимально возможное подходящее значение \(K\).

ФОРМАТ ВВОДА (файл cowdance.in):

Первая строка ввода содержит \(N\) и \(T_{max}\), где \(T_{max}\) - целое число, не более 1 000 000.

Следующие \(N\) строк задают длительности танцев \(d(1) \ldots d(N)\) для коров \(1 \ldots N\). Каждое из \(d(i)\) - целое число в интервале \(1 \ldots 100,000\).

Гарантируется, что если \(K=N\), шоу закончится вовремя.

ФОРМАТ ВЫВОДА (файл cowdance.out):

Выведите наименьшее возможное значение \(K\) такое, что танцевальное шоу закончится не более чем через \(T_{max}\) единиц времени.

Беси создала новую игру. Игрок стреляет коровами на одномерную сцену, состоящую из множества стогов сена расположенных в различных точках на числовой прямой. Каждая корова приземляется с силой достаточной, чтобы разрушить ближайшие к точке приземления стоги. Цель - использовать множество коров так, чтобы разрушить все стоги сена.

Имеется \(N\) стогов сена расположенных в целочисленных позициях \(x_1, x_2, \ldots, x_N\) на числовой прямой. Если корова приземляется с энергией \(R\) в позиции \(x\), это вызывает взрыв "радиуса \(R\)", разрушающий все стоги сена в диапазоне \(x-R \ldots x+R\).

Всего имеется \(K\) коров для выстрелов, каждая с одной и той же энергией \(R\). Определите минимальную целую величину \(R\) такую, что возможно используя эти \(K\) коров разрушить все стоги сена на сцене.

ФОРМАТ ВВОДА (файл angry.in):

Первая строка ввода содержит \(N\) (\(1 \leq N \leq 50,000\)) и \(K\) (\(1 \leq K \leq 10\)). Каждая из оставшихся \(N\) строк содержит целые числа \(x_1 \ldots x_N\) (каждое в интервале \(0 \ldots 1,000,000,000\)).

ФОРМАТ ВЫВОДА (файл angry.out):

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

Корова Беси - фанат карточных игр. Однако у неё нет достойных противников. Все они играют в полностью предсказуемой манере. Однако надо ещё придумать, как выиграть у них.

Беси и Эльза играют в простую карточную игру, в которой имеется колода из \(2N\) карт, последовательно пронумерованных \(1 \ldots 2N\). Они делят её поровну - \(N\) карт Беси и \(N\) карт Эльзе. Затем они играют \(N\) раундов, в каждом из которых Беси и Эльза выкладывают по одной карте, и тот, у кого карта больше, зарабатывает очко.

Беси может предсказать порядок, в котором будет выкладывать карты Эльза. Определите максимальное количество очков, которое может выиграть Беси.

ФОРМАТ ВВОДА (файл highcard.in):

Первая строка ввода содержит значение N (\(1 \leq N \leq 50,000\)).

Следующие N строк содержат карты, которыми будет играть в каждом из последующих раундов игры. Заметим, что из этой информации легко определить карты, которые на руках у Беси.

ФОРМАТ ВЫВОДА (файл highcard.out):

Выведите в одной строке максимальное количество очков, которое может заработать Беси.

Беси посадила траву на положительной вещественной прямой. У неё есть \(N\) (\(2\le N\le 2\cdot 10^5\)) различных сортов травы. И она посадит траву \(i\)-го сорта на интервале \([\ell_i, r_i]\) (\(0 < \ell_i < r_i \leq 10^9\)).

Известно, что сорт \(i\) растёт лучше, если есть некоторый сорт \(j\) (\(j\neq i\)) такой, что сорт \(j\) и сорт \(i\) перекрываются на длину не менее \(k_i\) (\(0 < k_i \leq r_i - \ell_i\)). Беси хочет для каждого сорта \(i\) вычислить количество таких of \(j\neq i\), что сорты \(j\) и \(i\) перекрываются на длину не менее \(k_i\).

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит число \(N\).

Каждая из последующих \(N\) строк содержит три разделённых одиночными пробелами целых числа \(\ell_i\), \(r_i\), \(k_i\).

ФОРМАТ ВЫВОДА (на экран / stdout):

Ответы для всех сортов на отдельных строках.

SCORING:

  • Тесты 4-5: \(N \leq 5000\)
  • Тесты 6-11: \(k\) одинаковое для всех интервалов
  • Тесты 12-20: Нет дополнительных ограничений..

В дополнение, в тестах 5, 7, ..., 19, \(r_i \leq 2N\) for all \(i\).

Автор: Benjamin Qi

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