---> 1657 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 326 327 328 329 330 331 332 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

Вам дан массив \(V\) длины \(n\), и вы хотите уметь осуществлять над ним следующие операции:

1) get(\(a\), \(b\)) - узнать наибольший общий делитель чисел на отрезке от \(a\) до \(b\).

2) update(\(a\), \(b\), \(k\)) - для всех \(j\) от \(a\) до \(b\) увеличить \(j\)-е число на \(k \cdot (j - a + 1)\), т.е.

\(V_a += k\)

\(V_{a+1} += 2 \cdot k\)

...

\(V_b += (b - a + 1) \cdot k\)

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

Первая строка входного файла содержит два числа \(1 \le n \le 10^5\) - кол-во числе в массиве и \(1 \le q \le 10^5\) - кол-во запросов. Следующая строка содержит \(n\) чисел - массив \(V\) \(1 \le V_i \le 2 \cdot 10^8\).

Далее в \(q\) строках идет информация о запросах:

Каждый запрос get задается тремя числами 0 \(a\) \(b\)

Каждый запрос update задается четырьмя числами 1 \(a\) \(b\) \(k\) (\(1 \le k \le 2 \cdot 10^8\))

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

Для каждого запроса get выведите наибольший общий делитель чисел на отрезке от \(a\) до \(b\)

Система оценки

Подзадача 1(20 баллов) \(1 \le n \le 1000\), \(1 \le q \le 1000\)

Подзадача 2(20 баллов) нет запросов update

Подзадача 3(60 баллов) нет дополнительных ограничений

Примеры
Входные данные
8 3
2 8 12 24 66 33 21 7
0 2 4
1 1 4 2
0 2 4
Выходные данные
4
2
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

У Элли есть \(N\) овец на пастбище. У неё также есть \(K\) гончих собак, которые охраняют овец от волков. Опасность для каждой овцы можно вычислить как расстояние до ближайшей собаки - чем оно меньше, тем лучше. Опасность для стада можно вычислить как сумму этих расстояний для каждой овцы. Мы считаем пастбище плоской поверхностью, а овец - точками на плоскости.

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

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

В первой строке стандартного ввода даны натуральные числа \(N\) и \(K\) - количество овец и количество собак соответственно. В каждой из следующих \(N\) строк даны два целых числа \(X_i\) и \(Y_i\) - координаты \(i\)-й овцы.

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

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

Система оценки

За каждый тест вашему решению будут начисляться баллы, равные \(round(min(1, (authorScore / yourScore))^4 * testScore)\), где \(authorScore\) - это результат, найденный решением жюри, \(yourScore\) - результат вашего решения, и \(testScore\) - максимальная оценка для данного теста.

Примеры
Входные данные
7 2
1 2
1 4
2 5
3 2
4 4
5 6
6 5
Выходные данные
1.750000 3.250000
5.000000 5.000000
ограничение по времени на тест
0.5 second;
ограничение по памяти на тест
256 megabytes

Мислав и Мирко разработали новую игру под названием повороты.

Сначала Мирко выбирает последовательность чисел длины \(n\) и число \(k\) и разбивает последовательность на секции, каждая из которых содержит \(k\) чисел (\(n\) делится на \(k\)). Первая секция содержит первые \(k\) позиций в последовательности, вторая секция содержит последующие \(k\) позиций в последовательности и так далее.

После этого Мирко начинает применять различные операции на данной последовательности. Есть два типа операций:

1. Совершить циклический сдвиг элементов последовательности чисел в каждой секции на \(x\) влево или вправо.

2. Совершить циклический сдвиг элементов последовательности чисел целиком на \(x\) влево или вправо.

Заметим, что операция типа 2 может изменить то, к какой секции принадлежит какое число.

После применения всех операций, Мирко сообщает Миславу получившуюся последовательность и применённые операции. Задача Мислава заключается в том, чтобы восстановить исходную последовательность. Он попросил вас о помощи.

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

Первая строка ввода содержит три целых числа \(n\), \(k\), \(q\) (\(1 \le n \le 100000; 1 \le k \le 100000; 1 \le q \le 100000\)) - длину последовательности, длину каждой секции и количество применённых операций соответственно.

Последующие \(q\) строк содержат описание выполненных операций. Каждая из последующих \(q\) строк содержит два целых числа \(a\) (\(1 \le a \le 2\)) - тип операции, и \(x\) (\(-100000 \le x \le 100000\)) - число позиций, на которое был произведен циклический сдвиг. Если число \(x\) отрицательно, надо производить циклический сдвиг на \(|x|\) элементов влево, иначе - на \(|x|\) элементов вправо.

Последняя строка содержит \(n\) целых чисел, \(i\)-е из которых - это число, которое будет стоять на \(i\)-й позиции после выполнения операций из условия.

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

В единственной строке выведите \(n\) чисел - исходную последовательность.

Система оценки

Подзадача 1 (15 баллов): (\(n \le 100\))

Подзадача 2 (20 баллов): (\(k \le 100\))

Подзадача 3 (65 баллов): без дополнительных ограничений

Примеры
Входные данные
4 2 2
2 2
1 1
3 2 1 0
Выходные данные
0 1 2 3 
Входные данные
8 4 4
1 3
1 15
1 -5
2 -1
6 10 14 19 2 16 17 1
Выходные данные
6 10 14 1 2 16 17 19 
Входные данные
9 3 5
1 1
2 -8
2 9
1 1
2 -4
3 1 8 7 4 5 2 6 9
Выходные данные
5 3 6 9 7 1 8 2 4 
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Недавно в Байтландии изобрели Битовый Поляризационный Магнит. Если его применить, каждая дорога в Байтландии станет односторонней. Это будет очень плохо, ведь в Байтландии дороги образуют дерево — от каждого города до каждого ровно один путь. В зависимости от того, в какую сторону окажется ориентирована каждая дорога, различные города станут недостижимы друг из друга. Теперь ученые решили выяснить, насколько плохо будет жить в Байтландии, если применить БПМ. Определите минимальное и максимальное количество пар городов, что из первого по прежнему можно будет добраться до другого после применения магнита.

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

Первая строка содержит число \(n\) — число городов в Байтландии (\(1 \le n \le 250000\)). Следующая \(n - 1\) строка описывают дороги, каждая дорога описывается двумя различными числами от \(1\) до \(n\) — номерами городов, которые он соединяет. От каждого города можно добраться до любого другого.

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

Выведите два числа: минимальное и максимальное число искомых пар городов.

Система оценки

Подзадача 1 (10 баллов): \(1 \le n \le 15\)

Подзадача 2 (15 баллов): \(1 \le n \le 100\)

Подзадача 3 (15 баллов): \(1 \le n \le 3000\)

Подзадача 4 (10 баллов): \(1 \le n \le 10000\)

Подзадача 5 (35 баллов): \(1 \le n \le 60000\)

Подзадача 6 (15 баллов): Без дополнительных ограничений

Примеры
Входные данные
4
1 2
1 3
1 4
Выходные данные
3 5
Входные данные
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
Выходные данные
7 28
ограничение по времени на тест
1.5 second;
ограничение по памяти на тест
256 megabytes

Поздравляем! Вас наняли управляющим одного крупного завода по производству чего-то очень важного. На вашем заводе есть \(n\) рабочих и \(n\) станков. Каждый рабочий умеет работать на каких-то станках, а на каких-то не умеет. К счастью, вы можете отправить какого-то рабочего на курсы повышения квалификации, чтобы он научился работать на каком-то станке, заплатив за это 1 тугрик. Нет никаких ограничений по тому, кого и сколько раз отправлять на курсы. У ваших работников также очень хорошая память, поэтому если они умели или научились работать на каком-то станке, то уже никогда не забудут, как это делать.

Но не все так радужно. Из-за кризиса сократили всех других менеджеров, поэтому рабочие сами определяют, за каким станком им работать в определенный день. Рабочие могут прийти на работу в случайном порядке. Когда рабочий пришел на работу он может выбрать любой еще не занятый станок, на котором умеет работать, и сядет за него. Если же такого не нашлось, то он расстроится и уйдет домой, а ваш завод понесет убытки. Так, если у вас было два рабочих, первый из которых умел работать на 1 и 2 станке, а второй только на первом, то если первый пришел на работу раньше и занял первый станок, то ваш завод понесет убытки.

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

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

В первой строке задано число \(1 \le n \le 25\) - кол-во рабочих и кол-во станков. Каждая из следующих строк содержит информацию об умениях рабочих. \(i+1\)-я строка ввода содержит строку \(s_i\), где \(s_{i,j} = 1\), если \(i\) рабочий умеет работать за \(j\)-м станком и 0 в обратном случае.

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

Выведите одно число - минимальное кол-во денег, которое вы можете потратить.

Система оценки

Подзадача 1(15 баллов) \(1 \le n \le 3\)

Подзадача 2(45 баллов) \(1 \le n \le 10\)

Подзадача 3(40 баллов) нет дополнительных ограничений

Примеры
Входные данные
2
11
10
Выходные данные
1
Входные данные
2
10
00
Выходные данные
1
Входные данные
3
000
110
000
Выходные данные
3

Страница: << 326 327 328 329 330 331 332 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест