Темы
    Информатика(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 задач)
Страница: << 21 22 23 24 25 26 27 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

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

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

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

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

В первой строке входного файла находится целое число \(n\) (\(1 \le n \le 50\)) — количество дорог в городе. В следующих \(n\) строках находится описание дорог.

Каждая дорога описывается четверкой целых чисел \(x_1, \ y_1, \ x_2, \ y_2\), которые задают координатами двух различных точек \((x_1, \ y_1)\) и \((x_2, \ y_2)\), через которые проходит дорога.

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

Координаты всех точек во входном файле являются целыми числами и не превосходят 100 по абсолютному значению.

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

В выходной файл выведите единственное число — суммарный угол в градусах, на который придется повернуть Пете при оптимальном выборе маршрута. Ответ считается правильным, если его относительная или абсолютная погрешность не превосходит \(10^{−9}\).

Если Петя никак не сможет добраться до дома Васи, выведите число −1.

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

Следующий рисунок соответствует первому примеру. Петя совершает два поворота на 135 градусов, его суммарное волнение равно 270.

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

Учительница математики очень не любит Колю и всегда заставляет его отвечать у доски самые сложные задачи.

Вот и сегодня она написала на доске последовательность из \(n\) целых неотрицательных чисел чисел \(a_1, \ a_2, \dots, \ a_n\) и вызвала Колю к доске. За одно действие учительница разрешает Коле стереть любое число и на его место записать число на единицу больше. Учительница требует от Коли за минимальное число действий добиться того, чтобы где-нибудь в этой последовательности встречались подряд в возрастающем порядке числа от \(1\) до \(h\).

Помогите Коле понять, за какое минимальное число действий ему удастся добиться того, что для некоторого \(i\) будет выполнено \(a_i \ = \ 1, a_{i \ + \ 1} \ = \ 2, \dots, \ a_{i \ + \ h \ − \ 1} \ = \ h\), или выясните, что это невозможно и учительница опять безнаказанно издевается над бедным Колей.

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

Первая строка входного файла содержит два натуральных числа: \(n\) и \(h\) (\(1 \le h \le n \le 200 000\)). Вторая строка содержит \(n\) чисел \(a_i\) — исходные значения элементов выписанной последовательности (\(0 \le a_i \le n\)).

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

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

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

В первом примере Коле надо дважды увеличить на 1 третье число и один раз — четвертое. Тогда последовательность примет вид 1, 1, 2, 3, для \(i \ = \ 2\) выполнено искомое условие.

Во втором примере получить в последовательности подряд 1 и 2 невозможно.

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

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

Рассмотрим кратко правила игры. Игра происходит на бесконечном клетчатом поле, два игрока делают ходы по очереди, первый игрок ходит крестиками, а второй — ноликами. В свой ход игрок выбирает свободную клетку поля и ставит туда свой символ. Если после хода очередного игрока на поле есть пять его символов подряд по вертикали, горизонтали или диагонали, то сделавший такой ход игрок объявляется победителем и игра заканчивается.

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

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

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

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

Следующие \(n\) строк содержат по m символов, каждый из которых равен одному из следующих: «.» (точка), «X» (заглавная латинская буква «икс») или «0» (ноль). При этом «.» обозначает пустую клетку, «X» обозначает крестик, а «0» обозначает нолик. Гарантируется, что на поле находится равное число крестиков и ноликов, и ни один игрок еще не одержал победу.

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

Выведите одно число — количество оптимальных ходов Пети.

Примеры
Входные данные
5 3
...
000
XXX
...
...
Выходные данные
2
Входные данные
4 4
..0.
.XX0
.0X.
....
Выходные данные
0
Входные данные
5 6
......
.XXX..
.0000.
..X...
......
Выходные данные
0
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

В лаборатории аномальных материалов антинаучно-исследовательского комплекса «Black Mesa» проводят эксперименты с недавно разработанным графитовым наностержнем. Графитовый наностержень представляет собой \(n\) последовательно соединенных атомов углерода, находящихся на одной прямой. Каждый атом имеет определенный заряд.

Для проведения эксперимента, стержень располагают вертикально. Пронумеруем атомы от 1 до n снизу вверх. Между двумя атомами образуется сильная связь, если это соседние атомы и верхний из них имеет заряд ровно на один больше, чем нижний. Иными словами, атомы a и b соединены сильной связью, если \(a \ = \ b \ + \ 1\) и \(q_a \ = \ q_b \ + \ \)1, где \(q_i\) — заряд \(i\)-го атома. Цепочкой атомов назовем несколько последовательных атомов, соединенных сильными связями.

Вчера был проведен очередной эксперимент. Перед началом эксперимента каждому атому установили определенный заряд: \(i\)-му атому установили заряд \(q_i\).

Во время эксперимента ученые проводили действия двух типов:

  • у всех атомов с номерами от \(l_i\) до \(r_i\), включительно, заряд изменяли на величину \(d_i\);
  • временно разрушали все сильные связи атомов, кроме тех, которые соединяют атомы с номерами от \(l_i\) до \(r_i\), включительно, и измеряли длину самой длинной цепочки атомов среди оставшихся сильных связей. Затем восстанавливали все временно разрушенные связи.
Было произведено \(m\) действий, однако выяснилось, что в результате побочного эффекта эксперимента запись результатов измерений оказалась утеряна. Для продолжения работы с графитовым наностержнем необходимо восстановить результаты вчерашних измерений. К счастью, сохранился план действий, произведенных во время эксперимента. Помогите ученым продолжить исследования, восстановите результаты измерений.

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

В первой строке находится одно целое число \(n\) (\(1 \le n \le 100 000\)) — количество атомов в наностержне. Во второй строке находятся \(n\) чисел
\(q_i\) (\(|q_i | \le 10^9\)) — начальный заряд \(i\)-го атома. В третьей строке находится одно целое число \(m\) (\(0 \le m \le 100 000\)) — количество действий в эксперименте. В следующих \(m\) строках содержится описание эксперимента.

Если строка начинается с символа «+», очередное действие — изменение заряда атомов. В таком случае, далее в этой строке находятся три целых числа: \(l_i, \ r_i \ и \ d_i (1 \le l_i \le r_i \le n, \ |d_i | \le 10^9\) ), которые характеризуют это действие.

Если строка начинается с символа «?», очередное действие — второго типа. В таком случае, далее в этой строке находятся два целых числа: \(l_i\) и \(r_i\) (\(1 \le l_i \le r_i \le n\)), которые характеризуют это действие.

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

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

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

Иллюстрация к примеру. Пунктиром выделены сильные связи, которые разрушаются на время действия второго типа. Для каждого действия второго типа выделены отрезок запроса и самая длинная цепочка.

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

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

Подруге Ане он личным сообщением в социальной сети сообщил число внутри месяца, а другу Боре — месяц своего рождения. Затем он опубликовал на своей странице список дней года, один из которых — день его рождения, а также фразу о том, что Аня знает число, но не знает месяц, а Боря — знает месяц, но не число.

Затем в комментариях состоялся следующий диалог:

Аня: Я не знаю точную дату рождения Вани, но я уверена, что и Боря её тоже не знает.

Боря: Я сначала не знал дату Ваниного рождения, но теперь, после твоего комментария, знаю точно!

Аня: Ого! Теперь и я тоже знаю точную дату!

Когда же у Вани день рождения?

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

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

В каждой из следующих \(n\) строк содержится описание одной даты: число и номер месяца. Месяцы пронумерованы от 1 до 12.

Даты приведены в хронологическом порядке внутри года.

Гарантируется, что ситуация корректна, и существует единственная возможная дата рождения Вани, которая приводит к описанному диалогу.

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

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

Замечание

Напомним число дней в каждом месяце. Поскольку Ваня мог родиться и в високосном году, будем считать, что в феврале 29 дней.

Примеры
Входные данные
11
29 2
5 5
16 5
31 5
17 6
18 6
14 7
16 7
5 12
14 12
17 12
Выходные данные
17 6

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