Страница: << 59 60 61 62 63 64 65 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

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

Помимо борьбы с пробками решено было обновить рекорд по протяженности самой длинной магистрали, проложенной с севера на юг. Для того чтобы обновить рекорд необходимо построить магистраль длиной хотя бы \(d\) километров, а поскольку лишних денег в бюджете Флатбурга не так уж и много, решено было построить дорогу длиной ровно \(d\).

Министр транспорта Флатбурга решил предоставить мэру все варианты строительства новой дороги. Для начала он решил подсчитать, сколько существует способов построить магистраль. Помогите министру.

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

Первая строка входного файла содержит два целых числа \(n\) — количество вершин у многоугольника, задающего кольцевую автодорогу (\(3 \le n \le 100000\)), и \(d\) — длину новой магистрали (\(1 \le d \le 10^8\)).

Далее следует описание расположения вершин — каждая из следующих \(n\) строк содержит координаты \(x\) и \(y\) (\(-10^8 \le x, y \le 10^8\)) соответствующей вершины. Вершины заданы в порядке их обхода против часовой стрелки.

Направлению с севера на юг соответствуют прямые, задаваемые уравнением \(x = c\) для некоторого \(c\). Заданный многоугольник является монотонным.

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

В выходной файл выведите количество способов построить дополнительную магистраль длиной ровно \(d\). Если способов постройки бесконечно много, выведите в выходной файл «Infinity».

ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

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

На данный момент у Сергея хранятся \(n\) точек восстановления различных серверов, пронумерованных от 1 до \(n\). Точка восстановления с номером \(i\) позволяет произвести откат для сервера \(a_i\). Сергей решил разбить перенос на этапы, при этом на каждом этапе в случае возникновения проблем будут доступны точки восстановления с номерами \(l, l + 1, \ldots, r\) для некоторых \(l\) и \(r\).

Для того, чтобы спланировать перенос данных оптимальным образом, Сергею необходимо научиться отвечать на запросы: для заданного \(l\), при каком минимальном \(r\) в процессе переноса будут доступны точки восстановления не менее чем \(k\) различных серверов.

Помогите Сергею.

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

Первая строка входного файла содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 10^5\)), разделенные пробелами — количество точек восстановления и количество серверов. Вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) — номера серверов, которым соответствуют точки восстановления (\(1 \le a_i \le m\)).

Третья строка входного файла содержит \(q\) — количество запросов, которые необходимо обработать (\(1 \le q \le 100\,000\)). В процессе обработки запросов необходимо поддерживать число \(p\), исходно оно равно 0. Каждый запрос задается парой чисел \(x_i\) и \(y_i\), используйте их для получения данных запроса следующим образом: \(l_i = \left((x_i + p) \bmod n\right) + 1\),

\(k_i = \left((y_i + p) \bmod m\right) + 1\) (\(1 \le l_i,x_i \le n\), \(1\le k_i, y_i \le m\)). Пусть ответ на \(i\)-й запрос равен \(r\). После выполнения этого запроса, следует присвоить \(p\) значение \(r\).

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

На каждый запрос выведите одно число — искомое минимальное \(r\), либо 0, если такого \(r\) не существует.

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

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

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

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

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

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

В первой строке заданы три числа \(a_1\), \(b_1\) и \(c_1\) — длины сторон первого щита. Во второй строке заданы три числа \(a_2\), \(b_2\) и \(c_2\) — длины сторон второго щита. Обе строки задают корректные невырожденные треугольники. Все числа во входном файле не превосходят \(100{\,}000\).

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

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

ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

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

Все перегоны в метрополитене имеют одинаковую длину, а змея имеет длину в \((l - 0.5)\) перегонов. Змея может ползти вдоль перегонов, переползая с одного на другой на станциях. Змея может ползти вдоль перегона только в один слой, а ее голова не может появляться на станции, если в этот момент по станции проползает другая часть ее тела. Змея умеет ползать только головой вперед.

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

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

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

В первой строке ввода записано два числа \(n\) и \(k\) — количество станций и количество перегонов в метрополитене (\(1 \le n, k \le 100\,000\)). В следующих \(k\) строках записано по два различных целых числа \(a\) и \(b\) — номера станций, соединенных соответствующим перегоном.

В следующей строке записано единственное число \(l\), характеризующее длину змеи. В следующей строке записано \(l + 1\) число: номера станций, на которых лежат последовательные части змеи, начиная с головы, а также номер станции, в перегоне к которой лежит хвост змеи длиной в \(0.5\) перегона. Исходно змея расположена таким образом, что ни в каком перегоне не находится одновременно две различных части змеи и змея не пересекает себя ни на какой станции.

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

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

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

Если задача невыполнима, выведите единственное число \(-1\).

ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Недавно Петя начал играть в шахматы.

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

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

Фигуры ходят следующим образом:

король - на любую соседнюю по вертикали, горизотнали или диагонали клетку;

ферзь - на любое расстояние по вертикали, горизонтали или диагонали;

ладья - на любое расстояние по вертикали или горизонтали;

слон - на любое расстояние по диагонали;

конь - в форме буквы "Г": на 1 клетку по горизонтали и на 2 по вертикали, или наоборот, на 1 клетку по вертикали и 2 по горизонтали.

Вам даны позиции одной белой и одной черной фигуры.

Определите, бьют ли фигуры друг друга, и, если бьют, выведите какая из них бьет какую.

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

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

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

B - слон, N - конь, R - ладья, Q - ферзь, K - король.

Второй символ задает горизонталь (от \(a\) до \(h\)). Третий символ задает вертикаль (от 1 до 8).

Гарантируется, что фигуры стоят на различных клетках шахматной доски.

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

В выходной файл выведите одно слово - ответ на задачу.

В случае, если ни одна фигура не бьет другую, выведите "NONE".

В случае, если обе фигуры бьют друг друга, выведите "BOTH".

В случае, если белая фигура бьет черную, а черная не бьет белую, выведите "WHITE".

В случае, если черная фигура бьет белую, а белая не бьет черную, выведите "BLACK".

Примеры
Входные данные
Ka1
Rg1
Выходные данные
BLACK
Входные данные
Qf3
Qh5
Выходные данные
BOTH

Страница: << 59 60 61 62 63 64 65 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест