Темы
    Информатика(2656 задач)
---> 304 задач <---
Источники --> Личные олимпиады --> Всероссийская олимпиада школьников
    Муниципальный этап(80 задач)
    Окружная олимпиада(18 задач)
    Региональный этап(109 задач)
    Заключительный этап(97 задач)
Страница: << 55 56 57 58 59 60 61 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Телекоммуникационная сеть крупной IT-компании содержит n серверов, пронумерованных от 1 до \(n\). Некоторые пары серверов соединены двусторонними каналами связи, всего в сети m каналов. Гарантируется, что сеть серверов устроена таким образом, что по каналам связи можно передавать данные с любого сервера на любой другой сервер, возможно с использованием одного или нескольких промежуточных серверов.

Множество серверов \(A\) называется отказоустойчивым, если при недоступности любого канала связи выполнено следующее условие. Для любого не входящего в это множество сервера \(X\) существует способ передать данные по остальным каналам на сервер \(X\) хотя бы от одного сервера из множества \(A\).

На рис. 1 показан пример сети и отказоустойчивого множества из серверов с номерами 1 и 4. Данные на сервер 2 можно передать следующим образом. При недоступности канала между серверами 1 и 2 — с сервера 4, при недоступности канала между серверами 2 и 3 — с сервера 1. На серверы 3 и 5 при недоступности любого канала связи можно по другим каналам передать данные с сервера 4.

В рамках проекта группе разработчиков компании необходимо разместить свои данные в сети. Для повышения доступности данных и устойчивости к авариям разработчики хотят продублировать свои данные, разместив их одновременно на нескольких серверах, образующих отказоустойчивое множество. Чтобы минимизировать издержки, необходимо выбрать минимальное по количеству серверов отказоустойчивое множество. Кроме того, чтобы узнать, насколько гибко устроена сеть, необходимо подсчитать количество способов выбора такого множества, и поскольку это количество способов может быть большим, необходимо найти остаток от деления этого количества способов на число \(10^9 + 7\).

Требуется написать программу, которая по заданному описанию сети определяет следующие числа: \(k\) — минимальное количество серверов в отказоустойчивом множестве серверов, \(c\) — остаток от деления количества способов выбора отказоустойчивого множества из \(k\) серверов на число \(10^9 + 7\)

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

Первая строка входного файла содержит целые числа \(n\) и \(m\) — количество серверов и количество каналов связи соответственно (\(2 \le n \le 200000\), \(1 \le m \le 200000\)). Следующие \(m\) строк содержат по два целых числа и описывают каналы связи между серверами. Каждый канал связи задается двумя целыми числами: номерами серверов, которые он соединяет.

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

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

Выведите два целых числа, разделенных пробелом: \(k\) — минимальное число серверов в отказоустойчивом множестве серверов, \(c\) — количество способов выбора отказоустойчивого множества из \(k\) серверов, взятое по модулю \(10^9 + 7\)

Пояснения к примеру

В приведенном примере отказоустойчивыми являются следующие множества из двух серверов: {1, 3}, {1, 4}, {1, 5}.

Описание подзадач и системы оценивания

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

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

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

Участок поверхности планеты, на котором планируется добывать полезные ископаемые, представляет собой клетчатый прямоугольник размером \(w\) на \(h\), клетки участка имеют координаты от (1, 1) до \((w, h)\). В некоторых клетках участка находятся базы специалистов, в которые могут быть доставлены партии роботов. Всего на участке размещено \(s\) баз, и \(i\)-я база находится в клетке с координатами \((x_i , y_i)\).

Каждая партия роботов характеризуется тремя параметрами: \(j\)-я партия доставляется на базу \(b_j\) , содержит \(n_j\) роботов и каждый робот партии обладает мобильностью \(m_j\) .

Когда партия роботов доставляется на соответствующую базу, каждый робот этой партии перемещается по поверхности планеты от базы до некоторой клетки. Если мобильность робота равна \(m\), он может не более \(m\) раз переместиться на одну из восьми соседних клеток, как показано на рис. 1.

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

Руководством проекта получена информация о \(t\) партиях роботов, которые могут быть последовательно отправлены на планету. После доставки всех партий роботов, учитывая их ограниченную мобильность, возможна ситуация, что не удастся разместить роботов на участке так, чтобы в каждой клетке оказалось не больше \(q\) роботов. Поэтому руководство должно выбрать \(k\) первых партий роботов, где \(0 \le k \le t\), которые будут полностью доставлены на соответствующие базы. После этого, если \(k < t\), следует дополнительно принять \(z\) из \(n_{k + 1}\) роботов следующей, (\(k + 1\))-й партии, \(0 \le z < n_{k + 1}\).

Все полученные таким образом роботы должны с учетом ограничения на мобильность разместиться на участке таким образом, чтобы в каждой клетке было не более \(q\) роботов. После этого они будут активированы и начнут добычу полезных ископаемых. Разумеется, руководство проекта старается максимизировать количество роботов, которые будут доставлены на планету, поэтому, с учетом описанных ограничений, требуется максимизировать \(k\), а затем максимизировать \(z\).

Требуется написать программу, которая по размерам участка, числу \(q\), описанию расположения баз, а также количеству запланированных партий роботов и их описанию определяет максимальное число \(k\) — количество партий роботов, и затем – максимальное число \(z\) – дополнительное количество роботов из (\(k + 1\))-й партии, чтобы, доставив роботов на планету, их можно было разместить на участке таким образом, чтобы в каждой клетке оказалось не более \(q\) роботов.

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

Первая строка входного файла содержит числа \(w\), \(h\), \(s\) и \(q\) (\(1 \le w, h \le 10^5 , 1 \le s \le 4, 1 \le q \le 100\)). Последующие \(s\) строк содержат по два целых числа \(x_i , y_i\) и описывают базы специалистов (\(1 \le x_i \le w, 1 \le y_i \le h\)).

Следующая строка содержит число \(t\) — количество партий роботов (\(1 \le t \le 100\)). Последующие \(t\) строк описывают партии роботов и содержат по 3 целых числа: \(b_j , n_j\) и \(m_j\) (\(1 \le b_j \le s, 1 \le n_j \le w \cdot h \cdot q, 0 \le m_j < max(w, h)\) ).

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

Требуется вывести два числа: \(k\) и \(z\), \(0 \le k \le t\). Если \(k = t\), то \(z\) должно быть равно 0, иначе должно выполняться условие \(0 \le z < n_{k + 1}\).

Пояснения к примеру

В приведенном примере описания входных данных следует полностью принять первую партию роботов и дополнительно принять 7 роботов из второй партии. На рис. 2 показано, как можно разместить этих роботов на участке, чтобы в каждой клетке было не более одного робота. Базы специалистов показаны кружками. Клетки, в которых окажутся роботы с базы 1, показаны вертикальной штриховкой, а клетки, в которых окажутся роботы с базы 2, показаны серым цветом.

Описание подзадач и системы оценивания

Баллы за каждую из подзадач 1–5 начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.

Тесты для подзадачи 6 запускаются только в случае, если все тесты подзадач 1–5 успешно пройдены. Каждый тест в подзадаче 6 оценивается независимо в 1 балл.

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

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

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

Если после приема очередной посылки суммарный вес посылок в пакете больше или равен \(x\) кг, то пакет доставляется в муниципальный почтовый центр, где пакет с посылками перемещается в специальный контейнер.

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

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

Требуется написать программу, которая по заданным значениям \(k\) — максимального веса посылки, \(x\) — необходимого веса пакета для его отправки в муниципальный почтовый центр, и \(y\) — необходимого веса контейнера для его отправки в региональный сортировочный центр, определяет минимальный вес контейнера при его перевозке.

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

Входной файл содержит три целых положительных числа, по одному на строке. Первая строка содержит число \(k\) (\(1 \le k \le 10^9\) ). Вторая строка содержит число \(x\) (\(1 \le x \le 10^9\) ). Третья строка содержит число \(y\) (\(1 \le y \le 10^9\) ).

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

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

Пояснения к примеру

В приведенном примере принимаются посылки весом 1 и 2 кг. При накоплении посылок с суммарным весом хотя бы в 7 кг пакет доставляется из клиентского почтового пункта в муниципальный почтовый центр. При накоплении посылок с суммарным весом хотя бы в 20 кг контейнер перевозится из муниципального почтового центра в региональный сортировочный центр.

Минимальный возможный вес контейнера в данном примере составляет 21 кг и достигается, например, следующим образом: в муниципальный почтовый центр последовательно доставляется 3 пакета по 7 кг каждый. Пакет весом 7 кг может получиться, например, после приема семи посылок по 1 кг.

Описание подзадач и системы оценивания

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

Примеры
Входные данные
2
7
20
Выходные данные
21
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Группа ученых работает в международной научной лаборатории, которая занимается исследованиями поведения элементарных частиц в установке для экспериментов «Большой линейный коллайдер» (БЛК). Установка БЛК представляет собой прямую, в некоторых точках которой размещаются частицы, которые могут перемещаться вдоль прямой.

В очередном эксперименте в БЛК размещаются n частиц, каждая из которых представляет собой либо отрицательно заряженную частицу — электрон \(е^–\) , либо положительно заряженную частицу — позитрон \(е^{+}\) . В эксперименте \(i\)-я частица исходно размещается в точке с координатой \(x_i\) . После начала эксперимента в результате работы БЛК частицы начнут перемещаться в разные стороны вдоль прямой: \(е^{–}\) частицы перемещаются по направлению уменьшения координаты, а \(е^{+}\) частицы — по направлению увеличения координаты. Абсолютные величины скоростей всех частиц одинаковы и равны 1.

Если в процессе перемещения частицы \(е^{–}\) и \(е^{+}\) оказываются в одной точке, то они взаимодействуют и обе исчезают, при этом они не влияют на дальнейшее поведение остальных частиц.

Ученые выбрали \(m\) различных моментов времени \(t_1, t_2, \dots, t_m\), для каждого из которых их интересует, какое количество частиц находится в БЛК непосредственно после каждого из этих моментов времени. Отсчет времени начинается с момента 0, когда частицы приходят в движение. Частицы, исчезнувшие в результате взаимодействия в момент времени \(t_j\) , не должны учитываться при подсчете количества частиц для этого момента времени.

Требуется написать программу, которая по описанию исходного расположения и типов частиц, а также заданным моментам времени, определяет для каждого из моментов количество частиц, которое будет находиться в БЛК непосредственно после этого момента.

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

Первая строка входного файла содержит число \(n\) — количество частиц (\(1 \le n \le 200 000\)). Последующие \(n\) строк описывают частdotsицы следующим образом: каждая строка содержит по два целых числа \(x_i\) и \(v_i\) — координату \(i\)-й частицы и ее тип соответственно (\(–10^9 \le x_1 \lt x_2 \lt \dots \lt x_n \le 10^9 , v_i\) равно –1 или 1). Частица \(е^{–}\) описывается значением \(v_i = –1\), а частица \(е^{+}\) описывается значением \(v_i = 1\).

Следующая строка содержит целое число \(m\) — количество моментов времени, которые выбрали ученые (\(1 \le m \le 200 000\)). Последняя строка содержит \(m\) целых чисел: \(t_1, t_2, \dots, t_m\) (\(0 \dots t_1 \lt t_2 \lt \dots \lt t_m \le 10^9\) ).

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

Для каждого момента времени во входном файле требуется вывести одно число: количество частиц в БЛК непосредственно после этого момента.

Пояснения к примеру

В приведенном примере в начальный момент в БЛК находятся 4 частицы: частица \(е^{+}\) в точке –1, частица \(е^{–}\) в точке 0, частица \(е^{+}\) в точке 1 и частица \(е^{–}\) в точке 5.

В момент времени 0.5 первая частица \(е^{+}\) и первая частица \(е^{–}\) сталкиваются в точке с координатой –0.5 и исчезают. В момент времени 1 оставшиеся две частицы находятся в точках с координатами 2 и 4, соответственно. В момент времени 2 они сталкиваются в точке 3 и исчезают. Больше в БЛК частиц нет

Таблица системы оценивания

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

В физико-биологической лаборатории исследуют воздействие излучения на растения при облучении через силовые поля.

Экспериментальная установка содержит квадратную платформу размером \(10^9 \times 10^9\) , заполненную плодородной почвой. Над платформой установлен источник излучения. Между источником излучения и платформой можно включать \(n\) силовых полей.

Генератор силовых полей установлен над точкой (0, 0). При этом \(i\)-е силовое поле представляет собой прямоугольник со сторонами, параллельными границам платформы и координатами двух противоположных углов (0, 0) и \((x_i , y_i)\).

В эксперименте планируется изучать воздействие излучения на растения при облучении через \(k\) силовых полей. Из заданных n полей необходимо выбрать \(k\) полей для эксперимента. Ученые хотят выбрать силовые поля таким образом, чтобы площадь участка платформы, над которой находятся все \(k\) выбранных силовых полей, была максимальна.

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

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

Первая строка входного файла содержит целые числа \(n\) и \(k\) (\(1 \le k \le n \le 200 000\)) — общее количество силовых полей и количество силовых полей, которые необходимо выбрать для эксперимента.

Последующие \(n\) строк содержат по два целых числа \(x_i , y_i (1 \le x_i , y_i \le 10^9\) ) — координаты дальнего от начала координат угла прямоугольного участка \(i\)-го силового поля.

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

Требуется вывести одно целое число: максимальную площадь искомого участка.

Пояснения к примеру

На рис. 1 показаны пять силовых полей, заданных во входном файле. Оптимальный способ выбрать из них три поля для эксперимента показан на рис. 2.

Описание подзадач и системы оценивания

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

Примеры
Входные данные
5 3
3 5
2 2
2 5
4 4
5 3
Выходные данные
9

Страница: << 55 56 57 58 59 60 61 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест