Информатика

7 731 задачавместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
В коровий кёрлинг вовлечены две команды, каждая из которых двигает N тяжёлых камней (3 <= N <= 50,000) по льду. В конце игры имеется 2N камней на льду, каждый из которых расположен в различной точке
плоскости.  
 
Подсчёт очков в коровьем кёрлинге ведётся следующим образом:
Камень считается «захваченным», если он содержится внутри треугольника, по углам которого находятся камни противника (камень, который находится на границе такого треугольника, также считается захваченным). Счёт команды есть количество камней команды противника, которые «захвачены».
 
Вычислите финальный счёт матча по коровьему кёрлингу, по заданному расположению всех камней.
 
 
INPUT FORMAT:
 
* Строка 1: Целое число N.
 
* Строки 2..1+N: Каждая строка содержит 2 целых числа, указывающих x  и y координаты камня команды A (каждая координата лежит в диапазоне -40,000 .. +40,000).
 
* Строки 2+N..1+2N: Каждая строка содержит 2 целых числа, указывающих x  и y координаты камня команды B (каждая координата лежит в диапазоне -40,000 .. +40,000).
 
OUTPUT FORMAT:
 
* Строка 1: Два разделённых пробелом целых числа, представляющих счета команд A и B 
 
SAMPLE:
 
Ввод Вывод
4
0 0
0 2
2 0
2 2
1 1
1 10
-10 3
10 3 
1 2
 
INPUT DETAILS:
 
У каждой команды по 4 камня.
Команда A имеет камни (0,0), (0,2), (2,0), (2,2).
Команда B имеет камни (1,1), (1,10), (-10,3), (10,3).
 
 
OUTPUT DETAILS:
 
Команда A захватила камень противника в точке (1,1).
Команда B захватила камни противника в точках (0,2) и (2,2).

В игре нужно собрать древесину для строительства домика. Рядом растут N деревьев. Высота дерева с номером i равна Ai метрам.

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

Например, при высоте среза 6 м дерево высотой 10 м даст 4 м древесины, а дерево высотой 5 м не даст древесины.

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

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

В первой строке записаны два целых числа N K — количество деревьев и необходимая суммарная длина срезанных частей.

Во второй строке записаны N целых чисел A1, A2, …, AN — высоты деревьев.

1 ≤ N ≤ 1000; 1 ≤ Ai ≤ 109; 1 ≤ K ≤ A1 + A2 + … + AN.

При высоте среза 0 древесины всегда достаточно.

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

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

Для турнира приготовили N лент. Длина ленты с номером i равна Ai сантиметров.

Из них нужно вырезать не менее K одинаковых ленточек для медалей. Длина каждой полученной ленточки должна быть целым положительным числом сантиметров.

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

Найдите наибольшую возможную длину одной ленточки.

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

В первой строке записаны два целых числа N K — количество исходных лент и необходимое количество ленточек.

Во второй строке записаны N целых чисел A1, A2, …, AN — длины исходных лент.

1 ≤ N ≤ 1000; 1 ≤ Ai ≤ 109; 1 ≤ K ≤ A1 + A2 + … + AN.

Таким образом, ленточек длиной 1 см всегда хватит.

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

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

Для школьного праздника нужно изготовить не менее K игрушек. На фабрике есть N автоматов. Автомат с номером i изготавливает одну игрушку за Ai минут.

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

Игрушка учитывается только после полного завершения работы над ней. Например, автомат, которому нужны 3 минуты, выпускает игрушки в моменты 3, 6, 9 минут и так далее.

Найдите минимальное время, за которое будет готово не менее K игрушек.

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

В первой строке записаны два целых числа N K — количество автоматов и необходимое количество игрушек.

Во второй строке записаны N целых чисел A1, A2, …, AN — время изготовления одной игрушки каждым автоматом.

1 ≤ N ≤ 1000; 1 ≤ K ≤ 109; 1 ≤ Ai ≤ 106.

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

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

К школьной выставке подготовили N одинаковых прямоугольных карточек. Ширина каждой карточки — A сантиметров, высота — B сантиметров.

Карточки нужно разместить на квадратном стенде ровными горизонтальными рядами. В каждом ряду карточки стоят рядом, а ряды располагаются один над другим. Все карточки ориентированы одинаково: сторона A расположена горизонтально, сторона B — вертикально. Поворачивать карточки, накладывать их друг на друга и выпускать за края стенда нельзя. Зазоры между карточками не нужны; часть мест может остаться пустой.

Найдите наименьшую целую длину стороны стенда, на котором поместятся все карточки.

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

В одной строке записаны три целых числа A B N.

1 ≤ A, B ≤ 1000; 1 ≤ N ≤ 106.

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

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

Строгое убывание

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 3 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: символы идут по алфавиту строго по убыванию.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Строгое возрастание

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 3 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: символы идут по алфавиту строго по возрастанию.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Середина больше краёв

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 3 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: средний символ больше по алфавиту обоих крайних.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Все три одинаковы

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 3 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: все три символа одинаковы.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Совпадают крайние

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 3 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: первый и третий символы одинаковы, а средний от них отличается.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Буква A по краям

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 3 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: первый и третий символы равны A, а средний отличается от A.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Буква A только справа

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: второй символ равен A, а первый не равен A.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Ни одной B

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: оба символа отличаются от B.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Ровно одна цифра 7

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: ровно один символ равен 7.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы 1, 2, 3, 7, 8, 9.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Хотя бы одна A

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: хотя бы один символ равен A.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Обе буквы гласные

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: оба символа входят в набор AEIOU.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E, I, O, U.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Ровно одна гласная

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: ровно один символ входит в набор AEIOU.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E, I, O, U.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Соседи разных типов

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: один символ — цифра, второй — буква.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы X, Y, Z, 1, 2, 3.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Пара по убыванию

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: первый символ больше второго по алфавиту.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

Пара по возрастанию

Дана строка s. Рассматриваются все подряд идущие фрагменты длины 2 (в том числе пересекающиеся). Найдите количество фрагментов, для которых выполнено условие: первый символ меньше второго по алфавиту.

Ввод: одна строка без пробелов. Длина строки от 1 до 2500 символов. Строка содержит только символы A, B, C, D, E.

Вывод: одно целое число.

Пересекающиеся фрагменты учитываются отдельно.

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