Петя и Вася — хорошие друзья. Поэтому они часто ездят друг к другу в гости. Недавно Петя получил водительские права и собирается навестить своего друга. Для простоты будем считать, что все дороги в городе, в котором они живут, являются бесконечными прямыми. В месте пересечения двух или более дорог находятся перекрестки. Дома Пети и Васи расположены возле некоторых дорог города, но не на перекрестках.
Петя начинает путь на дороге возле своего дома. При этом он может выбрать любое из двух направлений. Когда Петя подъезжает к перекрестку, он может повернуть на любую другую проходящую через него дорогу или продолжить ехать по текущей. Поскольку Петя не очень опытный водитель, каждый поворот, который он совершает, заставляет его волноваться. Причем волнение Пети равно величине угла, на который он поворачивает, в градусах. Например, при повороте на прямой угол волнение Пети равно 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
Учительница математики очень не любит Колю и всегда заставляет его отвечать у доски самые сложные задачи.
Вот и сегодня она написала на доске последовательность из \(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
Пете и Васе стало очень скучно на уроке биологии, и они решили поиграть в любимую всеми школьниками игру в крестики-нолики до пяти в ряд на бесконечном поле.
Рассмотрим кратко правила игры. Игра происходит на бесконечном клетчатом поле, два игрока делают ходы по очереди, первый игрок ходит крестиками, а второй — ноликами. В свой ход игрок выбирает свободную клетку поля и ставит туда свой символ. Если после хода очередного игрока на поле есть пять его символов подряд по вертикали, горизонтали или диагонали, то сделавший такой ход игрок объявляется победителем и игра заканчивается.
Петя и Вася уже довольно долго играют в игру. Сейчас должен ходить Петя, который играет крестиками. Петя надеется побыстрее завершить игру и хочет выиграть не более чем за два, а лучше за один ход. Петя называет ход оптимальным, если для этого хода выполнено одно из двух:
В первой входного файла находятся два натуральных числа \(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
В лаборатории аномальных материалов антинаучно-исследовательского комплекса «Black Mesa» проводят эксперименты с недавно разработанным графитовым наностержнем. Графитовый наностержень представляет собой \(n\) последовательно соединенных атомов углерода, находящихся на одной прямой. Каждый атом имеет определенный заряд.
Для проведения эксперимента, стержень располагают вертикально. Пронумеруем атомы от 1 до n снизу вверх. Между двумя атомами образуется сильная связь, если это соседние атомы и верхний из них имеет заряд ровно на один больше, чем нижний. Иными словами, атомы a и b соединены сильной связью, если \(a \ = \ b \ + \ 1\) и \(q_a \ = \ q_b \ + \ \)1, где \(q_i\) — заряд \(i\)-го атома. Цепочкой атомов назовем несколько последовательных атомов, соединенных сильными связями.
Вчера был проведен очередной эксперимент. Перед началом эксперимента каждому атому установили определенный заряд: \(i\)-му атому установили заряд \(q_i\).
Во время эксперимента ученые проводили действия двух типов:
В первой строке находится одно целое число \(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
Ваня сомневается, хочет ли он праздновать свой день рождения. Он решил сообщить друзьям частичную информацию о дате своего рождения, и если они вычислят точную дату, то так тому и быть — праздник состоится.
Подруге Ане он личным сообщением в социальной сети сообщил число внутри месяца, а другу Боре — месяц своего рождения. Затем он опубликовал на своей странице список дней года, один из которых — день его рождения, а также фразу о том, что Аня знает число, но не знает месяц, а Боря — знает месяц, но не число.
Затем в комментариях состоялся следующий диалог:
Аня: Я не знаю точную дату рождения Вани, но я уверена, что и Боря её тоже не знает.
Боря: Я сначала не знал дату Ваниного рождения, но теперь, после твоего комментария, знаю точно!
Аня: Ого! Теперь и я тоже знаю точную дату!
Когда же у Вани день рождения?
В первой строке содержится целое число \(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