Алгоритмы

918 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Necklace#89892

Беси выложила N камней, на каждом одна буква алфавита и хочет построить ожерелье.
Имя соседки Беси представляет строку из M символов. Беси хочет, чтобы эта строка из M символов не встречалась как непрерывная подстрока в строке, представляющей ее ожерелье.
Беси решила удалить некоторые из камней из своего ожерелья, так чтобы имя другой коровы не встречалась как подстрока.
Определите минимальное количество камней, которое она должна удалить.
PROBLEM NAME: necklace
Формат входных данных
* Строка 1: Строка длины N, описывающая ожерелье Беси все символы в диапазоне a-z.
* Строка 2: Строка длины M, описывающая имя другой коровы все символы в диапазоне a-z.
Формат выходных данных
* Строка 1: Минимальное количество камней, которое нужно удалить из ожерелья Беси, чтобы оно не содержало имя другой коровы как подстроку
Примечание
Модифицированная строка должна быть "abbaa".
Cow Race#89890

Чтобы окончательно решить вопрос кто быстрее, Беси и ее подруга Эльза решили провести гонки вокруг фермы.
Обе коровы стартуют в одном и том же месте, в одно и то же время и начинают бежать в одном направлении. Прогресс каждой коровы описывается серией отрезков, в течение которого данная корова имеет одинаковую скорость. Например, Бэси может бежать со скоростью 5 в течение 3 единиц времени, затем со скоростью 6 в течение 6 единиц времени. Обе бегут одинаковое общее количество времени.
Коровы попросили Вас посчитать количество раз, когда менялось лидерство в их гонке. Лидерство меняется в той точке времени, когда корова A обгоняет корову B или наоборот.
PROBLEM NAME: cowrace
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа, N и M. (1 <= N, M <= 1000)
* Строки 2..1+N: Каждая строка содержит один из N отрезков бега Беси, описанный двумя целыми числами: скорость и количество времени, которое она бежала с данной скоростью (оба числа в диапазоне от 1 до 1000).
* Строки 2+N..1+N+M: Каждая строка содержит один из M отрезков бега Эльзы, описанный двумя целыми числами: скорость и количество времени, которое она бежала с данной скоростью (оба числа в диапазоне от 1 до 1000).
Формат выходных данных
* Строка 1: Количество раз когда изменилось лидерство в забеге.
Примечание
Эльза была впереди до момента времени t=3, когда обе коровы пробежали 6 единиц расстояния, затем бежали вместе в течение одной единицы времени. Беси затем вырвалась вперед (первое изменение лидерства), затем ее обошла Беси (второе изменение лидерства), Беси так и осталась лидером до конца гонки.

Фермер Джон планирует построить N (2 <= N <= 50,000) квадратных огороженных пастбищ у себя на ферме, каждое размером ровно K x K (1 <= K <= 1,000,000).
Пастбище i имеет центр в точке (xi, yi), с целочисленными координатами в диапазоне -1,000,000...1,000,000. Никакие два пастбища не имеют один и тот же центр.
Вычислите (ненулевую) площадь перекрытия двух квадратных пастбищ. Выведите 0, если никакие два квадрата не перекрываются. Выведите -1 если перекрываются более одной пары квадратов.
PROBLEM NAME: squares
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа, N и K. Гарантируется, что K четное.
* Строки 2..1+N: Строка i+1 содержит целые числа xi и yi, описывающие центр пасбища i.
Формат выходных данных
* Строка 1: Площадь перекрытия двух квадратов. Выведите 0, если никакие два квадрата не перекрываются, выведите -1, если перекрываются более одной пары квадратов.
Примечание
Пастбища #1 и #3 перекрываются на 20 единиц площади.

Корова Беси красит забор Фермеру Джону. Беси начинает в позиции 0 и выполняет последовательность из N инструкций. (1 <= N <= 100,000) вида "10 L", что означает покрасить 10 единиц влево и "15 R", что означает покрасить 15 единиц вправо.
Бесси может уйти не далее чем на 1,000,000,000 единиц от исходной точки.
По имеющей инструкции ФД хочет узнать область забора, которая покрашена как минимум K слоями краски.
PROBLEM NAME: paint
Формат входных данных
* Строка 1: Целые N и K
* Строки 2..1+N: Каждая строка описывает одну из N инструкций
Формат выходных данных
* Строка 1: Общая часть, покрашенная как минимум K слоями краски.
Примечание
6 единиц покрыто как минимум 2 слоями краски. Это интервалы: [-11,-8], [-4,-3], [0,2].

N коров (1 <= N <= 100,000) Фермера Джона выстроились в ряд. Каждая корова идентифицирована числом в диапазоне 0...1,000,000,000; которое обозначено B(i). Множество коров могут иметь один и тот же идентификатор.
ФД думает, что ряд коров будет впечатлять больше, если бы там был большой непрерывный участок, на котором все коровы имеют одинаковый идентификатор. Для того чтиобы создать такой участок, ФД выбирает до K идентификаторов и удаляет из своего ряда всех коров имеющих эти идентификаторы.
Помогите ФД вычислить длину наиблоьшего последовательного блока коров с одним и тем же идентификатором, после такого удаления.

PROBLEM NAME: lineup
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа: N и K.
* Строки 2..1+N: Строка i+1 содержит идентификатор B(i).
Формат выходных данных
* строка 1: Размер наибольшего непрерывного блока коров с одним идентификатором, который может создать ФД.
Примечание
Удалив всех коров с идентификатором 3, ФД получит ряд: 2, 7, 7, 7, 7, 5, 7. Имеется наибольший непрерывный участок из четырех чисел 7.


Корова Беси красит забор Фермеру Джону. Беси начинает в позиции 0 и выполняет последовательность из N инструкций. (1 <= N <= 100,000) вида "10 L", что означает покрасить 10 единиц влево и "15 R", что означает покрасить 15 единиц вправо.
Бесси может уйти не далее чем на 1,000,000,000 единиц от исходной точки.
По имеющей инструкции ФД хочет узнать область забора, которая покрашена как минимум двумя слоями краски.

PROBLEM NAME: paint
Формат входных данных
* Строка 1: Целое N
* Строки 2..1+N: Каждая строка описывает одну из N инструкций
Формат выходных данных
* Строка 1: Общая часть, покрашенная как минимум 2 слоями краски.
Примечание
6 единиц покрыто как минимум 2 слоями краски. Это интервалы: [-11,-8], [-4,-3], [0,2].


N (1 <= N <= 10,000) коров Фермера Джона пронумерованы последовательно от 1 до N. Для доения коровы i требуется T(i) единиц времени. Однако некоторые коровы необходимо подоить ранее других (из-за их положения на ферме). Если корову A требуется подоить перед коровой B, ФД должен полностью закончить дойку коровы A, прежде чем начать дойку коровы B.
Для того, чтобы подоить всех своих коров как можно быстрее, ФД нанял большое количество доярок - достаточно для того чтобы доить любое количество коров одновременно.
Определите минимальное количеатво времени, требуемое для дойки всех коров.

PROBLEM NAME: msched
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа: N (количество коров) и M (количество ограничений).
* Строки 2..1+N: Строка i содержит значение T(i).
* Строки 2+N..1+N+M: Каждая строка содержит два разделенных пробелом целых числа A и B, означающих, что корова A должна быть полностью подоена, прежде чем приступать к дойке коровы B.

Формат выходных данных
* Строка 1: Минимальное количество времени, требуемое чтобы подоить всех коров.
Примечание
Коров 1 и 3 можно начинать доить сразу и делать это одновременно. Когда закончится дойка коровы 3, можно начинать дойку коровы 2. Через 11 единиц времени закончится дойка всех коров.

Taxi#89875

Беси открыла такси-сервис для других коров на ферме. Коровы собрались в различных местах вдоль изгороди длины M (1<=M<=1,000,000,000) и каждая хочет переместиться в некоторое другое место вдоль изгороди. Беси должна подобрать корову в том месте, где она находится и отвезти в то место, куда она хочет.
Автомобиль Беси маленький и за раз может возить только одну корову. Коровы могут входить машину и выходить из нее мгновенно.
Беси хочет минимизировать расстояние проезда. Вам даны стартовые и финишные позиции N коров (1 <= N <= 100,000), определите минимальное количество езды, которое должна выполнить Беси. Беси поняла, что иногда выгодно высаживать корову не в позиции ее назначения.
Беси начинает в самой левой точке изгороди - позиции 0 и и должна закончить свое путешествие в самой правой точке - в позиции M.
PROBLEM NAME: taxi
Формат входных данных
* Cтрока 1: N и M разделенные пробелом
* Строки 2..1+N: (i+1)-ая строка содержит два разделенных пробелом целых числа, si и ti (0 <= si, ti <= M), указывающих стартовую и конечную позиции i-ой коровы.

Формат выходных данных
* Строка 1: Одно целое число, указывающее общее расстояние, которое проедет Беси. Заметим, что результат может не поместиться в 32-битное целое.


Примечание
Беси возьмет первую корову в позиции 0 и перевезет ее на позицию 6. Здесь она высадит первую корову и возьмет вторую корову, отвезет куда ей надо, а потом поедет к концу изгороди.

Perimeter#89872

Фермер Джон выстроил N (1 <= N <= 10,000) стогов сена в одном из своих полей. Мы рассмотрим это поле как решетку 100 х 100 из квадратных ячеек 1 х 1, где каждый стог сена занимает ровно одну ячейку. Никакие два стога не находятся в одной и той же ячейке.

ФД заметил, что его стоги всегда образуют один большой связный регион, что означает, что начиная с любого стога сена можно достичь любого другого стога сена с помощью серии шагов в строго соседнюю клетку в одном из четырех направлений: север, юг, запад, восток.
Однако этот связный регион может содержать "дыры" - пустые регионы, которые полностью окружены стогами.
Помогите ФД определить периметр региона, сформированный его стогами. Учитывайте, что дыры не вносят вклад в периметр.
PROBLEM NAME: perimeter
Формат входных данных
* Строка 1: Количество стогов, N.
* Строки 2..1+N: Каждая строка содержит(x,y) - положение одного стога где x и y целые числа в диапазоне 1..100. Позиция (1,1) это левый нижний угол поля ФД, а позиция (100,100) это правый верхний угол поля.
Формат выходных данных
* Строка 1: периметр связного региона стогов.
Примечание
Длина периметра равна 14, например левая сторона имеет длину 3. Заметьте, что дыра в середине не вносит значение в периметр.


Каждый день N (1 <= N <= 100,000) коров Фермера Джона переходят дорогу, расположенную в середине фермы. Рассмотрим карту фермы Джона на 2D-плоскости, дорога идет горизонтально, одна сторона дороги описывается прямой y=0, другая - прямой y=1.
Корова i пересекает дорогу, следуя по прямой из позиции (ai,0) на одной стороне в позицию (bi,1) на другой стороне. Все ai различны, так же как и все Bi. И все эти числа находятся в диапазоне -1,000,000...1,000,000.
ФД называет переход безопасным, если он не пересекается никакими другими переходами. Помогите ФД подсчитать количество безопасных переходов.
PROBLEM NAME: crossings
Формат входных данных
* Строка 1: Количество коров, N.
* Строки 2..1+N: Строка i содержит целые числа ai и bi, описывающие путь коровы i.
Формат выходных данных
* Строка 1: Количество безопасных переходов.
Примечание
Переходы первой и третьей коров не пересекаются переходами никаких других коров. Переходы второй и четвертой коров пересекают друг друга.

Беси тренируется делать карточные трюки. Она уже освоила уникальный
способ тасования M (2 <= M <= 100,000) карт так, чтобы i-ая карта сверху
становилась p[i] картой сверху.

Теперь она переходит в бОльшим колодам.
У Беси имеется колода из N карт (M<=N<=100,000), последовательно
пронумерованных 1..N. Она тасует её следующим образом: берёт первые M
карт и выполняет описанное выше тасование. И возвращает эти M карт
наверх колоды. Затем она забирает верхнюю карту из колоды и размещает
её значением вниз. Она продолжает этот процесс, выкладывая верхние
карты последовательно поверх друг друга, пока у неё не закончатся карты.
Когда у Беси становится карт меньше чем M, она больше не выполняет
тасование, но размещать верхнюю карту поверх ранее выложенных.

Беси знает, что изначально колода находится в отсортированном порядке с 1
наверху, потом 2 и т.д. N в конце. Вам задано описание тасования Беси.
Помогите Беси вычислить, какие карты окажутся на Q (1 <= Q <= N,
Q <= 5,000) указанных различных позициях в колоде.

PROBLEM NAME: shuffle

Формат входных данных

* Строка 1: Одна строка, содержащая N, M Q разделённые одиночными
пробелами

* Строки 2..1+M: Строка i+1 указывает позицию сверху P[i], i-ой карты в
тасовании Беси (1 <= P[i] <= M).

* Строки 2+M..1+M+Q: Строка i+1+M содержит одно целое число qi
Описывающее i-ый запрос. Вы должны вычислить значение карты
неа позиции qi сверху (1 <= qi <= N).

Формат выходных данных

* Строки 1..Q: В i-ой строке, выведите одно целое число – значение карты
на позиции qi сверху колоды по завершению процесса.

Примечание

Процесс протекает следующим образом

[1, 2, 3, 4, 5] -> [2, 3, 1, 4, 5] (выложить 2 значением вниз)
[3, 1, 4, 5] -> [1, 4, 3, 5] (выложить 1 значением вниз)
[4, 3, 5] -> [3, 5, 4] (выложить 3 значением вниз)
[5, 4] (выложить 5 значением вниз)
[4] (выложить 4 значением вниз)

Итого финальный порядок такой [4, 5, 3, 1, 2]

У Фермера Джона есть N (1 <= N <= 10,000) коров, которых нужно подоить.
Каждая дойка занимает ровно одну единицу времени.

Некоторые коровы не любя долго ждать дойки.
Точнее корова I производит gi галлонов молока (1<=gi<=1000),
но только если её подоить до её дед-лайна – di (1<=di<=10,000).
Время начинается в момент t=0.
Поэтому не более x коров может быть подоено до дед-лайна t=x.

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

PROBLEM NAME: msched

Формат входных данных

* Строка 1: Значение N.

* Строки 2..1+N: Строка i+1 содержит целые числа gi и di.

Формат выходных данных

* Строка 1: Максимальное количество галлонов молока, которое может
получить ФД

Примечание

ФД сначал подоит корову 3, не будет доить корову 4, поскольку её
дед-лайн конфликтует с коровой 3. Затем ФД подоит коров 1 и 2.

Wormholes#89863

Фермер Джон имеет хобби, связанное с физикой высоких энергий. В результате чего на его ферме образовалось N (2 <= N <= 12, N чётное) Дыр, каждая из которых расположена в различной точке на 2D-карте его фермы.
ФД знает, что эти дыры формируют N/2 связанных пар. Например, если A и B такая связанная пара, то любой объект, попавший в точку A Перемещается в точку B, двигаясь в этом направлении, а любой объект, попавший в точку B аналогично перемещается в точку A. Это может Иметь неприятные последствия, например, предположим, что имеется пара A в точке (0,0) и B в точке (1,0). Пусть Беси начинает из позиции (1/2,0) двигаясь по оси X в положительном направлении. Беси войдёт в точку B выйдет из A, затем попадёт в точку B опять и т.д. – то есть она попадает в бесконечный цикл!
ФД знает точное расположение каждой дыры на его ферме. Он знает, что Беси это корова, которая всегда гуляет в +x направлении, но он не знает точные координат Беси в текущий момент. Посчитайте количество различных пар дыр таких, что образуют для Беси бесконечный цикл, если она стартует из неудачной позиции.
PROBLEM NAME: wormhole
Формат входных данных
* Строка 1: количество дыр, N.
* Строки 2..1+N: Каждая строка содержит два разделённых пробелом целых числа, описывающих (x,y) координаты одной дыры. Каждая координата в диапазоне 0..1,000,000,000.

Формат выходных данных
* Срока 1: Количество различных пар дыр таких, что образуют для Беси бесконечный цикл, если она стартует из неудачной позиции и будет двигаться в +x направлении.


Примечание
Если мы пронумеруем дыры 1..4, то и сформируем две пары 1 и 2, 3 и 4. Беси попадёт в цикл, начиная из любой из точек из интервала (0,0) – (1,0) или из интервала (0,1) – (1,1). Аналогично, из тех же стартовых точек Беси попадёт в цикл, если мы сформируем пары 1-3, 2-4. Только пары 1-4 и 2-3 позволяют Беси двигаться в +x направлении из любой из точек плоскости, не имея возможности попасть в цикл.


Когда Фермер Джон не доит коров, собирает сено, выстраивает коров или строит изгороди, он сидит и читает хорошую книгу. С годами он собрал коллекцию из N книг (1 <= N <= 2,000), и хочет построить для них новое множество книжных полок.
Каждая книга I имеет ширину W(i) и высоту H(i). Книги необходимо ставить на полки в определенном порядке; например, первая полка должна содержать книги с номерами от 1 до k для некоторого k. Вторая полка должна содержать книгу k+1 и т.д. Каждая полка имеет общую ширину не более L (1 <= L <=1,000,000,000). Высота полки равна высоте самой высокой книги на этой полке, а высота множества книжных полок равна сумме высот на всех полках, поскольку полки ставятся одна поверх другой.
Помогите ФД вычислить минимально возможную высоту всего множества книжных полок.
PROBLEM NAME: bookshelf
Формат входных данных
* Строка 1: два разделенных пробелом целых числа: N и L.
* Строки 2..1+N: Строка i+1 содержит два разделенных пробелом целых числа : H(i) W(i). (1 <= H(i) <= 1,000,000; 1 <= W(i) <= L).
Формат выходных данных
* Строка 1: Минимально возможная высота множества полок.
Примечание
Всего 3 полки. Первая содержит книгу 1 (высота 5, ширина 7), вторая содержит книги 2..4 (высота 13, ширина 9), третья содержит книгу 5 (высота 3, ширина 8).
Tied Down#89857

Беси одна из тех коров, которые любят создавать проблемы. Во избежание этого Фермер Джон решил привязать Беси к изгороди длинной веревкой. Если смотреть сверху, изгородь представляет N столбов (1 <= N <= 10), которые расположены вдоль вертикальной прямой. Беси находится в позиции (bx,by) находящейся справа от это вертикальной линии. Веревка, которой ФД привязывает Беси описывается последовательностью из M отрезков прямой, (3 <= M <= 10,000), где первый отрезок начинается в позиции Беси, и последний отрезок заканчивается в позиции Беси. Никакой из столбов не лежит ни на одном из этих отрезков. Однако отрезки могут пересекаться, и многие отрезки могут пересекаться в своих конечных точках.
Пример такой сцены, вид сверху:

Чтобы помочь Беси освободиться, подружки стащили пилу из амбара. Определите минимальное количество столбов, которые они должны спилить, для того, чтобы Беси могла освободиться (то есть она сможет убежать, И никакой из отрезков веревки не зацепился, ни за какой из столбов)
Все (x,y)-координаты на вводе (столбы изгороди, Беси, конечные точки отрезков), есть целые числа в диапазоне 0..10,000. Все столбы имеют одну и ту же x-координату, bx больше этой величины.
PROBLEM NAME: tied
Формат входных данных
* Строка 1: Четыре целых числа, разделенных пробелами: N, M, bx, by.
* Строки 2..1+N: Строка i+1 содержит разделенные пробелами x и y координаты столба i.
* Строки 2+N..2+N+M: Каждая из этих M+1 строк содержит, по очереди, x и y координаты точки веревки. Первая и последняя точки всегда совпадают с координатами Беси (bx,by).
Формат выходных данных
* Строка 1: Минимальное количество столбов, которое нужно удалить, Чтобы корова смогла убежать, двигаясь вправо.
Примечание
Удаление столба 1 или столба 2 приводит к желаемому результату.

Bookshelf#89856

Когда Фермер Джон не доит коров, собирает сено, выстраивает коров или строит изгороди, он сидит и читает хорошую книгу. С годами он собрал коллекцию из N книг (1 <= N <= 100,000), и хочет построить для них новое множество книжных полок.
Каждая книга I имеет ширину W(i) и высоту H(i). Книги необходимо ставить на полки в определенном порядке; например, первая полка должна содержать книги с номерами от 1 до k для некоторого k. Вторая полка должна содержать книгу k+1 и т.д. Каждая полка имеет общую ширину не более L (1 <= L <=1,000,000,000). Высота полки равна высоте самой высокой книги на этой полке, а высота множества книжных полок равна сумме высот на всех полках, поскольку полки ставятся одна поверх другой.
Помогите ФД вычислить минимально возможную высоту всего множества книжных полок.
PROBLEM NAME: bookshelf
Формат входных данных
* Строка 1: два разделенных пробелом целых числа: N и L.
* Строки 2..1+N: Строка i+1 содержит два разделенных пробелом целых числа : H(i) W(i). (1 <= H(i) <= 1,000,000; 1 <= W(i) <= L).
Формат выходных данных
* Строка 1: Минимально возможная высота множества полок.
Примечание
Всего 3 полки. Первая содержит книгу 1 (высота 5, ширина 7), вторая содержит книги 2..4 (высота 13, ширина 9), третья содержит книгу 5 (высота 3, ширина 8).
Islands#89852

Когда идут ливневые дожди, поля Фермера Джона всегда подтапливаются. И, поскольку имеется рельеф местности, в результате образуются острова, разделенные пространствами воды.
Поля ФД описаны как одноместный рельеф, указанием N (1 <= N <= 100,000) последовательных высот H(1)...H(n). Представим себе, что этот рельеф ограничен с обоих сторон валами бесконечной высоты. Теперь рассмотрим, что случится во время ливневого дождя: сначала водой покрываются нижние регионы, при этом получаются, разъединенные «острова», которые, в конце концов, могут все покрыться водой, если она будет прибывать и прибывать. Если уровень воды становится равным уровню куска земли, то этот кусок считается покрытым водой.

Пример показан на рисунке выше: слева мы добавили 1 единицу воды, и покрыли 4 острова. Затем мы добавили еще 7 единиц воды и теперь только два острова торчат из воды. Вычислите максимальное количество островов, которое мы сможем увидеть, если вода будет прибывать с нуля и до тех пор, пока весь рельеф не скроется под водой.

PROBLEM NAME: islands
Формат входных данных
* Строка 1: Целое число N.
* Строки 2..1+N: Строка i+1 содержит высоту H(i). (1 <= H(i) <= 1,000,000,000)
Формат выходных данных
* Строка 1: Одно целое число, определяющее максимальное количество островов, которое получится в один момент времени во время проливного дождя.


Ферма Джона - гигантское дерево из N пастбищ (1 <= N <= 40,000), каждое из которых помечено символом ( или символом ).
Например:
'('--'('--')'--'('--')' | | ')' ')'--'('--'(' | | ')' '('--')'--')'--')'--'('
Поскольку ферма дерево - то некоторые пары пастбищ соединены дорожками, так что существует уникальный путь между любыми двумя парами пастбищ. Некоторые из этих путей представляют сбалансированные строки скобок. Теперь ФД хочет узнать какова максимальная глубина вложенности среди всех сбалансированных строк представляющих эти пути.
Максимальной глубиной вложенности сбалансированной строки скобок называется максимальное превышение количества левых скобок над правыми среди всех префиксов этой строки. Например, для строки ()()() максимальная глубина вложенности - 1, а для строки ((()))() максимальная глубина вложенности - 3:
((()))() 12321010
Для примера фермы, представленного выше "наиглубокая" строка есть ((())), ее глубина равна 3, а строка получается по пути из A в B:
'('--'('--')'--'('--')' | | ')' ')'--'('--'(' < A | | ')' '('--')'--')'--')'--'(' ^C ^B
Заметим, что она отличается от самой длинной сбалансированной строки (())(()), которая начинается в A, заканчивается в C и имеет длину 8.
Ваша задача - вывести максимальную глубину вложенности среди путей на данном дереве.
PROBLEM NAME: btree
Формат входных данных
* Строка 1: Одно целое число N, количество вершин в дереве.
* Строки 2..N: Строка i+1: Одно целое число p_(i+1) (1 <= p_(i+1) <= i), означающее, что существует ребро между вершинами I+1 и P_(I+1) в этом дереве.
* Строки N+1..2N: Строка N+i: Или ( или ), метка вершины i.
Формат выходных данных
* Строка 1: Одно целое число - максимальная глубина вложенности среди всех сбалансированных путей

Еще Беси уважает "совершенно сбалансированные строки", в которых за строкой из левых скобок следует строка их правых скобок такой же длины.
(((())))
Имеется двумерный массив из N*N символов ( и ). Начиная с левого верхнего угла массива нужно пройти, выбирая символы так, чтобы построенная строка была совершенно сбалансированной и имела максимальную длину.
На каждом шагу можно двигаться вверх, вниз, влево или вправо, но нельзя заходить в одну и ту же клетку более одного раза. Можно зайти не во все клетки.
PROBLEM NAME: hshoe
Формат входных данных
* Строка 1: Целое число N (2 <= N <= 5).
* Строки 2..N+1: Каждая строка содержит строку из N скобок. Все вместе эти строки описывают решетку N*N.
Формат выходных данных
* Line 1:Длина наибольшей совершенно сбалансированной строки. Если Беси не может построить совершенно сбалансированную строку например, если левый верхний угол содержит символ )., то выведите 0.


Примечание
Последовательность шагов, которую нужно выполнить, чтобы получит ответ 8 такова: 1()) 2)(( 345( 876)

Tractor#89841

Фермер Джон оставил свой трактор в середине поля. Коровы решили подшутить над ФД. Они разместили N стогов сена (1 <= N <=50,000) в различных участках поля, так что ФД не может забрать трактор не удалив некоторые из них.
Местоположение трактора и стогов сена - это точки на декартовой плоскости с целочисленными координатами от 1 до 1000. Нет стогов сена в позиции трактора. Трактор ФД может двигаться только параллельно осям координат (на север, юг, запад и восток) на целое количество единиц. Трактор не может проходить через точку, в которой имеется стог сена.
Пожалуйста, помогите ФД определить минимальное количество стогов сена, которые придется убрать, чтобы он мог привести трактор в начало координат.
PROBLEM NAME: tractor
Формат входных данных
* Строка 1: Три разделенных пробелом целых числа N x y (x,y) - начальные координаты трактора
* Строки 2..1+N: Каждая строка содержит (x,y)-координаты стога сена


Формат выходных данных
* Строка 1: Минимальное количество стогов сена, которое ФД должен удалить для того, чтобы обеспечить путь своему трактору к началу координат.
Примечание
Достаточно удалить только 1 стог.

Поделиться
Класснуть