Темы
    Информатика(2656 задач)
---> 167 задач <---
Источники --> Командные олимпиады --> Командные чемпионаты школьников Санкт-Петербурга по программированию
    1999(5 задач)
    2000(7 задач)
    2001(8 задач)
    2002(8 задач)
    2003(9 задач)
    2004(9 задач)
    2005(10 задач)
    2006(10 задач)
    2007(10 задач)
    2008(9 задач)
    2009(10 задач)
    2010(10 задач)
    2011(9 задач)
    2012(10 задач)
    2013(10 задач)
    2014(11 задач)
    2015(11 задач)
    2016(11 задач)
Страница: << 23 24 25 26 27 28 29 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Каждый год в честь дня города в Южно-Берляндске проводится открытая эстафета. В конкурсе участвуют команды из \(k\) человек, в процессе эстафеты участники команды должна посетить \(n\) контрольных пунктов.

Контрольные пункты пронумерованы от \(1\) до \(n\), место старта обозначим как пункт \(0\). Соревнование проходит следующим образом: первый участник из команды стартует из пункта \(0\), пробегает по некоторым \(a_1\) ранее не посещенным контрольным пунктам, возвращается в пункт \(0\) и передает эстафету второму участнику. После этого второй участник пробегает какие-либо \(a_2\) ранее не посещенных контрольных пунктов, возвращается и передает эстафету следующему. Эстафета продолжается, пока последний участник не посетит \(a_k\) ранее не посещенных контрольных пунктов и не вернется на старт. Передача эстафеты происходит мгновенно. Цель команды — пробежать эстафету как можно быстрее.

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

Помогите участникам составить маршрут, в котором команда пробежит эстафету как можно быстрее.

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

В первой строке находятся два целых числа \(n\) и \(k\) (\(1 \le n \le 18, \ 1 \le k \le n\)) — число контрольных пунктов и число участников в команде.

Во второй строке находятся \(k\) целых чисел \(a_i\) (\(1 \le a_i \le n, a_1 \ + \ a_2 \ + \ \dots \ + \ a_k \ = \ n\)) — число контрольных пунктов, которые должен пробежать \(i\)-й участник.

В следующих \(n \ + \ 1\) строках находится по \(n \ + \ 1\) целому числу \(b{i,\ j} \ (1 \le b_{i, \ j} \le 10^6, \ b_{i, \ j} \ = \ b_{j, i}, b_{i, \ i} \ = \ 0\)) — время, за которое можно добежать от \(i\)-го пункта до \(j\)-го для \(i\) и \(j\) от \(0\) до \(n\).

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

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

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

Лера часто ездит по работе из Санкт-Петербурга в Москву и обратно. Так как дела у нее всегда срочные, добирается до места назначения она всегда на Сапсане. Как известно, в каждом вагоне Сапсана расположено ровно \(n\) мест, а именно \(\frac{n}{2}\) рядов по два места в каждом (\(n\) четное).

Однажды по пути домой после деловой встречи у Леры не было соседа, и ей стало скучно. Поэтому она задалась вопросом: сколько максимум человек можно посадить в вагон Сапсана, чтобы ровно у половины людей был сосед. Помогите Лере ответить на этот сложный вопрос.

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

В первой и единственной строке входного файла дано число \(n \ (2 \le n \le 10^9\) ) — количество мест в вагоне Сапсана. Гарантируется, что число \(n\) четное.

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

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

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

На рисунке приведено одно из возможных размещений пассажиров в примере. Заштрихованные клетки соответствуют занятым местам.

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

В батальоне непонятного назначения действует правило, что у каждого офицера должно быть не менее \(a\) и не более \(b\) звезд на погоне, при этом ни у каких двух офицеров не должно быть равного числа звезд.

В результате понижения в звании в батальон сослали офицера Й, у которого на погоне до понижения было \(c\) звезд. Теперь командиру батальона положено лишить его части звезд на погоне, в результате чего число звезд на его погоне должно стать строго меньше \(c\).

Командир батальона исследовал вопрос и выяснил, что минимальное положительное число звезд, которое можно удалить с погона офицера Й, чтобы правило выполнялось, равно \(d\), а максимальное — \(e\). Командир незамедлительно сообщил об этом офицеру Й.

Теперь офицера Й заинтересовал вопрос: какое минимальное и максимальное количество офицеров могло быть в батальоне до его прибытия? При этом командир батальона сам офицером батальона не является, и на его погонах изображены специальные загадочные символы, а не звезды.

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

В первой строке содержатся пять целых чисел \(a, \ b, \ c, \ d, \ e \ (1 \le a, \ b, \ c, \ d, \ e \le 1000, \ a \le b, \ a \ < \ c, \ d \le e\)).

Гарантируется, что ситуация корректна: офицера Й можно понизить так, чтобы приведенное в условии правило выполнялось, а утверждение командира является верным.

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

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

Примеры
Входные данные
10 18 20 5 8
Выходные данные
5 7
Входные данные
2 10 5 1 3
Выходные данные
0 7
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Недавно Женя устроился в компанию «Гуглекс», и сегодня его первый рабочий день. Женя живет на другом берегу реки и для проезда на работу решил воспользоваться паромом. Неожиданно он обнаружил, что съехать с парома на шоссе — не такая уж простая задача.

Машины на съезде с парома стоят в \(n\) полос, в \(i\)-й из которых стоит \(c_i\) машин, а непосредственно перед съездом находится светофор. Раз в минуту он включается зеленым и несколько машин с парома съезжают на берег. Женя заметил, что за один зеленый сигнал светофоров количество машин, которые могут успеть проехать со всех полос, суммарно не превосходит \(k\).

Понимая, что он не один такой, кому не нравится стоять в пробках, Женя ввел понятие «злости водителя». Злость водителя в некоторый момент времени равна количеству машин,которые стоят перед ним в этот момент в той же полосе. Например, если в полосе стоит 3 машины, то у водителя, чья машина находится ближе всего к светофору, злость равна 0, у следующего — 1, а у последнего — 2. Как настоящий программист, Женя сразу же начал думать, как можно оптимизировать процесс съезда с парома.

Оптимальным ему показался следующий вариант: в каждой полосе перед съездом поставить шлагбаум, который будет за один зеленый сигнал светофора пропускать только определенное количество машин. А именно, \(i\)-й полосе будет сопоставлено целое число \(k_i\) — максимальное количество машин, которые могут съехать за один зеленый сигнал. Сумма всех \(k_i\) должна быть равна \(k\).

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

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

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

В первой строке входного файла содержатся два числа \(n, \ k \ (1 \le n \le k \le 300\)) — количество полос на пароме и ограничение на количество машин, проезжающих за один зеленый сигнал светофора со всех полос.

Во второй строке входного файла находятся \(n\) чисел \(c_i \ (1 \le c_i \le 100 000\)) — количество машин, стоящих в \(i\)-й полосе в начальный момент времени.

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

В первой строке выходного файла выведите число \(a\) — минимальную суммарную злость всех водителей за все время движения машин через светофоры.

В следующей строке выведите \(n\) натуральных чисел \(k_i\) — ограничения на количество машин, проезжающих за один зеленый сигнал, для каждой полосы. Сумма чисел должна быть равна \(k\). Если оптимальных решений несколько, можно вывести любое.

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

В первом тестовом примере в оптимальном ответе за первый зеленый сигнал светофоров через первый шлагбаум проедет 1 машина, через второй — 1, через третий — 2. После этого злость оставшихся водителей будет равна 0 + 1 + 0 = 1 (в первом ряду не осталось машин, во втором ряду осталась одна машина, злость ее водителя равна 0, в третьем ряду осталось две машины, злость водителей в них равны 1 и 0). За второй зеленый сигнал светофоров проедут все оставшиеся машины. Получаем, что суммарная злость всех водителей за все время движения машин равна 1.

Во втором тестовом примере оптимальные числа ki такие же, однако суммарная злость водителей другая. После первого зеленого сигнала светофоров на первой полосе не останется машин, на второй полосе останется одна машина, злость ее водителя будет равна 0, а на третьей полосе останется 4 машины, злость водителей будет равна 3, 2, 1 и 0. После второго зеленого сигнала светофора на первой и второй полосах не останется машин, а на третьей полосе останется 2 машины, злость их водителей будет равна 1 и 0. После третьего зеленого сигнала машин на пароме не останется. Итого, суммарная злость водителей за все время равна 0 + 3 + 2 + 1 + 0 + 1 + 0 = 7.

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

Ивану с детства нравились газеты. У него даже была мечта стать главным редактором газеты. Однажды ему представился шанс осуществить свою мечту. Чтобы устроиться на работу в издательство, ему необходимо выполнить тестовое задание — сверстать рекламное объявление.

Задано поле шириной \(W\) и высотой \(H\). Объявление должно состоять из одной или нескольких строк, в которых необходимо разместить в заданном порядке \(N\) слов. Про \(i\)-е слово известно, что при печати в стандартном масштабе оно занимает прямоугольник шириной \(a_i\) и высотой \(b_i.\)

Чтобы объявление выглядело красиво, все слова в нем должны быть напечатаны в одном масштабе. При печати в масштабе \(k\) размеры всех слов умножаются на \(k\). Если исходно слово занимало прямоугольник \(a_i \times b_i\) , то при печати в масштабе \(k\) оно занимает прямоугольник размером \((k \cdot a_i) \times (k \cdot b_i)\). Кроме того, если в строке более одного слова, то все слова в ней должны иметь одинаковую высоту. Разумеется, ни одно слово не должно выходить за границы поля.

На рисунке приведен пример красивого объявления с тремя словами.

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

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

В первой строке входного файла дано три числа: \(N, \ W \ и \ H \ (1 \le N \le 100 000, 1 \le W, \ H \le 10^9 )\) — число слов в объявлении, длина и высота объявления. В следующих \(N\) строках дано по два целых числа, в \(i\)-й из них заданы \(a_i\) и \(b_i\) (\(1 \le a_i \ , b_i \le 10^9\) ) — ширина и высота \(i\)-го слова.

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

Выведите одно вещественное число \(k\) — максимальный масштаб. Ответ требуется вывести с абсолютной или относительной погрешностью не более \(10^{−9}.\)
Это значит, что если правильный ответ \(a\), а вы вывели \(p\), то ваш ответ будет засчитан как правильный, если \(\frac{|a \ - \ p|}{ max(|a|, \ 1)} \le 10^{−6}.\)

Примеры
Входные данные
3 10 7
4 3
3 2
4 2
Выходные данные
1.400000000000000
Входные данные
2 10 1
2 1
3 2
Выходные данные
0.333333333333333

Страница: << 23 24 25 26 27 28 29 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест