Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 544 задач <---
Страница: << 75 76 77 78 79 80 81 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

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

На первой строке входного файла находится число \(K\) — количество тестов во входном файле. Далее идёт описание \(K\) тестов. Каждый тест задаётся описанием двух многоугольников, которые надо проверить на пересечение. Каждый многоугольник задаётся в следующем формате: сначала указывается одно число \(N_i\) — число вершин этого многоугольника, после чего идут \(N_i\) строк, каждая из которых содержит два разделённых пробелом числа \(x_{ij}\) и \(y_{ij}\) — координаты \(j\)-й вершины этого многоугольника. Вершины перечислены в порядке обхода многоугольника.

Число пар многоугольников в одном тесте \(1 \leq K \leq 10\), число вершин каждого многоугольника \(3 \leq N_i \leq 100\), координаты вершин — целые числа, \(|x_{ij}|, |y_{ij}| \leq 10\,000\).

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

Для каждой пары многоугольников выведите в выходной файл на отдельной строке одно слово: “YES”, если многоугольники пересекаются, и “NO”, если нет.

Примеры
Входные данные
2
3
0 0
-1 0
0 -1
3
1 1
2 1
1 2
4
0 0
2 0
2 2
0 2
4
1 1
3 1
3 3
1 3
Выходные данные
NO
YES
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Вы по-прежнему работаете под руководством д.б.н., проф. О.Б. Ломова и изучаете интеллект обезьян. Ваши подопечные уже очень далеко ушли от столь элементарной задачи, как сбор квадрата. Теперь вы работаете над тем, чтобы обучить их намного более сложной задаче. Вы по-прежнему даёте обезьянам набор из \(N\) палочек, но на этот раз вы хотите, чтобы они собрали из этих палочек треугольник.

Конечно, решить эту задачу в элементарном варианте — выбрать три палочки и собрать из них треугольник — ваши подопечные могут без каких-либо проблем; вы же хотите их обучить, чтобы они собирали один большой треугольник из всех выданных им палочек сразу. Таким образом, они должны разбить палочки на три группы так, чтобы, сложив палочки каждой группы в один большой отрезок, получить три отрезка, из которых можно собрать треугольник. Полученный треугольник должен быть невырожденным, т.е. его площадь должна быть строго больше нуля.

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

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

На первой строке входного файла находится одно натуральное число \(N\) — количество палочек в наборе (\(1\leq N \leq 16\,000\)). На второй строке находятся \(N\) натуральных чисел — длины палочек. Гарантируется, что суммарная длина палочек не превосходит \(100\,000\,000\).

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

Если решения не существует, то в первую строку выходного файла выведите одно слово “no” (без кавычек). В противном случае в первую строку выведите одно слово “yes”, а в следующие три строки выведите какой-нибудь способ собрать треугольник из данных палочек. Каждая из этих трёх строк должна описывать очередную сторону получающегося треугольника: в каждой строке сначала должно идти количество палочек, из которых состоит эта сторона, а потом длины этих палочек. Каждую палочку, конечно, можно использовать только один раз.

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

Примеры
Входные данные
5
1 2 3 4 5
Выходные данные
yes
2   4 3
1   5
2   1 2
Входные данные
5
1 2 3 4 100
Выходные данные
no
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

Город N отличается очень строгой планировкой улиц: каждая улица идёт либо строго с юга на север, либо строго с востока на запад; при этом расстояние между соседними параллельными улицами одинаково. Соответственно, в городе есть много перекрёстков, расположенных в вершинах квадратной сетки. По планам, первая линия метро будет прямой и будет иметь станции на каждом перекрёстке, через который она пройдёт. Вася считает, что станция находится недалеко от его дома, если расстояние по прямой от его дома до станции не превосходит некоторой фиксированной величины \(R\).

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

Введём систему координат с осью \(x\), направленной с востока на запад, и осью \(y\), направленной с юга на север, с началом координат на одном из перекрёстков и с единицей длины, равной расстоянию между соседними параллельными улицами. Таким образом, улицы будут прямыми с уравнениями ..., \(x=-2\), \(x=-1\), \(x=0\), \(x=1\), \(x=2\), ..., а также ..., \(y=-2\), \(y=-1\), \(y=0\), \(y=1\), \(y=2\), ...

Во первой строке входного файла находятся целые числа \(x_0\), \(y_0\) — координаты Васиного дома (считаем, что он находится на некотором перекрёстке), — и расстояние \(R\) в тех же единицах измерения, в которых введены координаты. Во второй строке находятся четыре числа \(x_1\), \(y_1\), \(x_2\), \(y_2\) — координаты некоторых двух различных перекрёстков, через которые пройдёт линия метро. Все координаты во входном файле не превосходят \(100\,000\,000\) по модулю; расстояние \(R\) целое, положительное и не превосходит \(100\,000\,000\).

Можете считать, что линия метро будет бесконечной в обоих направлениях.

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

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

Примечание

Первый пример соответствует рисунку; на рисунке дом Васи и станции метро обозначены жирными точками.

Примеры
Входные данные
2 2 3
0 -1 1 1

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

Входные данные
0 0 1
-5 0 -3 0

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

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

Стоимость стакана чая и кофе в автомате предполагается установить равной пяти рублям. Автоматы будут принимать монеты по 5 и 10 рублей, а также купюры в 10, 50 и 100 рублей. Когда пассажиру надо выдавать сдачу (т.е. когда пассажир бросил в автомат десятирублёвую монету или 10-, 50- или 100-рублёвую купюру), автомат выдаёт сдачу пятирублёвыми монетами; если же пассажир бросил в автомат пятирублёвую монету, то автомат её сохраняет и может использовать для сдачи следующим пассажирам.

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

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

В первой строке входного файла находится одно натуральное число \(N\) — количество покупок в автомате, которые были совершены в ходе испытания (\(1\leq N\leq 50\,000\)). Во второй строке находятся \(N\) натуральных чисел, каждое из которых равно номиналу монеты или купюры, которую использовал очередной покупатель для оплаты; каждый номинал может принимать одно из четырёх значений: 5, 10, 50 или 100.

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

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

Примечание

В первом примере одна пятирублёвая монета потребуется для сдачи первому покупателю и 19 монет — третьему, но при сдаче третьему можно будет использовать ту монету, которую бросит второй покупатель, поэтому изначально в автомате достаточно 19 монет.

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

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

Примеры
Входные данные
3
10 5 100

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

Входные данные
3
5 5 10

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

Входные данные
4
50 5 5 5

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

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Рассмотрим два числа \(a\) и \(b\). По ним можно однозначно определить такое целое \(k\), что \(\) b^k\leq a< b^{k+1}; \(\) это \(k\) мы будем называть целой частью логарифма \(a\) по основанию \(b\).

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

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

В первой строке входного файла записано одно целое число \(a\) (\(1\leq a \leq 10^{100}\)) без ведущих нулей. Во второй строке входного файла записано целое число \(b\) (\(2\leq b\leq 100\)).

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

В выходной файл выведите одно число — целую часть логарифма \(a\) по основанию \(b\) без ведущих нулей.

Примеры
Входные данные
12345678987654321
3

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

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

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

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

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


Страница: << 75 76 77 78 79 80 81 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест