Перебор

86 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Фермер Джон выстроил \(N\) своих коров (\(2\le N\le 10^3\)), пронумерованных \(1\ldots N\), для фотоснимка. Изначально ФД планировал, что \(i\)-ая корова слева будет корова с номером \(a_i,\) и выписал перестановку \(a_1,a_2,\ldots,a_N\) на листке бумаги. К несчастью этот листок украл фермер Нхож.

Однако, ФД сможет восстановить перестановку, которую он изначально выписал. Перед тем, как листок с перестановкой был украден, Беси выписала последовательность \(b_1,b_2,\ldots,b_{N-1}\) такую, что \(b_i=a_i+a_{i+1}\) для всех \(1\le i<N.\)

Основываясь на информации от Беси, помогите ФД восстановить "лексикографически минимальную" перестановку \(a\), которая может произвести \(b\). Перестановка \(x\) лексикографически меньше перестановки \(y\), если для некоторого \(j\), \(x_i=y_i\) для всех \(i<j\) и \(x_j<y_j\) (другими словами, две перестановки идентичны до определённой точки, в которой \(x\) меньше чем \(y\)). Гарантируется, что существует как минимум одна такая перестановка \(a\)

ОЦЕНИВАНИЕ:

  • Тесты 2-4 удовлетворяют \(N\le 8.\)
  • Тесты 5-10 не имеют дополнительных ограничений.

ФОРМАТ ВВОДА (файл photo.in):

Первая строка содержит одно целое число \(N.\)

Вторая строка содержит \(N-1\) разделённых одиночными пробелами целых чисел \(b_1,b_2,\ldots,b_{N-1}.\)

ФОРМАТ ВЫВОДА (файл photo.out):

Одна строка с \(N\) разделёнными одиночными пробелами целых чисел \(a_1,a_2,\ldots,a_{N}.\)

Беси хочет написать собственную поэму.

Беси знает \(N\) (\(1 \leq N \leq 5000\)) слов и хочет организовать их в поэму. Она определила длину в слогах каждого слова, кроме того она распределила их в "классы рифм". Каждое слово рифмуется только с другими словами из этого же класса рифм.

Каждая из поэм Беси включает \(M\) строк (\(1 \leq M \leq 10^5\)) и каждая строка должна состоять из \(K\) (\(1 \leq K \leq 5000\)) слогов. Более того, поэм Беси должна соответствовать специфической схеме рифм.

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

ФОРМАТ ВВОДА (файл poetry.in):

Первая строка ввода содержит \(N\), \(M\), \(K\).

Каждая из следующих \(N\) строк содержит два числа \(s_i\) (\(1 \leq s_i \leq K\)) и \(c_i\) (\(1 \leq c_i \leq N\)). Они обозначают, что Беси знает слово с длиной (в слогах) \(s_i\) и класса рифмы \(c_i\).

Последние \(M\) строк описывают желаемую схему рифмы Беси и каждая содержит одну большую букву \(e_i\). Все строки соответствующие \(e_i\) должны заканчиваться словами одного и того же кдасса рифм. Строки с различными значениями \(e_i\) не обязательно заканчиваются словами с различными классами рифм.

ФОРМАТ ВЫВОДА (файл poetry.out):

Выведите количество поэм, которые может Беси написать, удовлетворяющих все заданным ограничениям. Поскольку это число может быть очень велико, выводите ответ по модулю 1,000,000,007.

Bessie и Эльза любя также играть в игру "угадай животное".

Сначала Беси задумывает некоторое животное. Затем Эльза задаёт серию вопросов, чтобы угадать, какое животное задумала Беси. На каждый вопрос Беси отвечает "Да" или "Нет". Например:

Эльза: "Животное летает?" 
Беси: "Нет" 
Эльза: "Ест траву" 
Беси: "Да" 
Эльза: "Даёт молоко?"
Беси: "Да" 
Эльза: "Делает му-у?"
Беси: "Да" 
Эльза: "Корова." 
Беси: "Точно!"

Назовём "правдоподобным множеством" множество всех всех животных, с характеристиками подходящими вопросам Эльзы. Эльза задаёт вопросы пока в "правдоподобном множестве" останется только одно животное, после чего она называет его в качестве ответа. Для каждого вопроса Эльза выбирает характеристику некоторого животного и спрашивает о ней (даже если ответ не сузит "правдоподобное множество"). Она никогда не спрашивает об одной и той же характеристике дважды.

Вам даны все животные, которых знают Беси и Эльза и их характеристики. Определите максимальное количество ответов "Да", которые может получить Эльза, прежде чем она узнает задуманное животное.

ФОРМАТ ВВОДА (файл guess.in):

Первая строка ввода содержит количество животных, \(N\) (\(2 \leq N \leq 100\)). Каждая из последующих \(N\) строк описывает животное. Строка начинается с названия животного, затем идёт целое число \(K\) (\(1 \leq K \leq 100\)), и затем \(K\) характеристик этого животного. Названия и характеристики животных это строки из маленьких латинских букв (a..z), длиной не более 20 символов. Никакие два животных не имеют полностью совпадающие характеристики.

ФОРМАТ ВЫВОДА (файл guess.out):

Выведите максимальное количество ответов "Да", которые Эльза может получить прежде чем игра закончится.

Каждый день Фермер Джон доит своих 8 коров, которых зовут Bessie, Buttercup, Belinda, Beatrice, Bella, Blue, Betsy, и Sue.

К несчастью, коровы довольно разборчивы и требуют, чтобы ФД доил их в порядке, который соответствует \(N\) ограничениям (\(1 \leq N \leq 7\)). Каждое из ограничений имеет вид "\(X\) must be milked beside \(Y\)" ("\(X\) необходимо подоить рядом \(Y\)"), что означает, что в порядке дойки корову \(X\) нужно доить сразу после коровы \(Y\) или непосредственно перед коровой \(Y\).

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

ФОРМАТ ВВОДА (файл lineup.in):

Первая строка ввода содержит \(N\). Каждая из последующих \(N\) строк содержит предложение описывающее ограничение вида "\(X\) must be milked beside \(Y\)" где \(X\) и \(Y\) - имена некоторых их коров ФД (8 возможных вариантов перечислены в начале условия задачи).

ФОРМАТ ВЫВОДА (файл lineup.out):

Выведите, используя 8 строк, порядок имён коров, по одному в строке, удовлетворяющий всем ограничениям. Если возможно несколько порядков, выведите наиболее ранний в смысле алфавита.

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

Сцена для шоу представляет \(N\) платформ, размещённых по кругу. На каждой платформе от \(1\) до \(N\) коров формируют стек (корова становится на корову). По сигналу главного на манеже, все стеки параллельно "падают" по часовой стрелке так, что нижняя корова стека не движется, корова на ней движется на одну платформу по часовой стрелке, следующая корова - на две платформы и т.д. В результате получаются новые стеки коров.

Главный на манеже думает, что шоу будет лучше, если после того, как стеки упадут, новый стек на каждой платформе будет содержать такое же количество коров, что и исходный стек на манеже. Мы называем конфигурацию стеков на манеже "магической", если она удовлетворяет этому условию. Вычислите количество "магических" конфигураций. Поскольку это число может быть очень большое, выведите его остаток по модулю \(10^9 + 7\).

Две конфигурации считаются различными, если существует платформа, для которых у этих двух конфигураций различное количество коров.

ФОРМАТ ВВОДА (файл gymnasts.in):

Ввод - олдно целое число, \(N\) (\(1 \leq N \leq 10^{12}\)).

ФОРМАТ ВЫВОДА (файл gymnasts.out):

Одно целое число - количество магических конфигураций по модулю \(10^9 + 7\).

У Фермера Джона два молочных амбара, в которых есть огромная цистерна для молока и 10 бидонов различных размеров. Он любит носить молоко из одного амбара в другой в качестве физических упражнений.

В понедельник ФД отмерял ровно \(1000\) галлонов молока в цистерну первого амбара, и ровно \(1000\) галлонов молока в цистерну второго амбара.

Во вторник он берёт бидон из первого амбара, наполняет его и переносит во второй амбар, где выливает это молоко в цистерну, а бидон оставляет во втором амбаре.

В среду он берёт бидон из второго амбара (возможно, тот, который он оставил во вторник), наполняет его, переносит молоко в первый амбар и выливает его в цистерну первого амбара. Он оставляет бидон в первом амбаре.

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

В пятницу он берёт бидон из второго амбара (возможно, тот, который он оставил во вторник ил четверг), наполняет его, переносит молоко в первый амбар и выливает его в цистерну первого амбара. Он оставляет бидон в первом амбаре.

ФД измеряет молоко в цистерне первого амбара. Сколько возможных вариантов такого измерения он может увидеть?

ФОРМАТ ВВОДА (файл backforth.in):

Первая строка ввода содержит \(10\) целых чисел - размеры бидонов находившихся изначально в первом амбаре. Вторая строка ввода содержит \(10\) целых чисел - размеры бидонов находившихся изначально во втором амбаре. Все размеры в интервале \(1 \dots 100\).

ФОРМАТ ВЫВОДА (файл backforth.out):

Количество различных вариантов считываний, которые может увидеть ФД после пятницы в первом амбаре.

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

Форма коровы описывается решёткой из \(N \times M\) (\(3 \leq N, M \leq 500\)) символов (на рисунке ниже приведён пример). Различные символы (маленькие латинские) обозначают различные цвета, а символ '.' - отсутствие фигуры.

 


...............
...............
x..x...........
xxxx...........
xxxxaaaaaaa....
.xx.aaaaaaaaa..
....aaaaaaa.aa.
....ll...ll....
....vv...vv....
...............

К несчастью до покупки в магазинчик ворвался бык, всё разгромил и сломал фигурку ФД на три части, которые затерялись на полу среди \(K\) (\(4 \leq K \leq 100\)) других кусков на полу. Каждый из \(K\) кусков на полу описывается аналогично тому как это сделано выше.

Помогите ФД определить сколько наборов из 3 кусков (из \(K\) валяющихся на полу) могут составить сломанную фигуру.

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

 

ФОРМАТ ВВОДА:

Первая строка содержит одно целое число \(K\). Далее идут \(K + 1\) описаний. Первое описывает оригинальную фигурку, остальные \(K\) - описание кусков на полу.

Каждое описание начинается со строки, содержащей два целых числа \(R\) и \(C\) (\(1 \le R, C \le 100\)). Последующие \(R\) строк содержат по \(C\) маленьких латинских символов, описывающих цвет каждой ячейки. Каждый кусок соединяется горизонтально или вертикально и имеет хотя бы одну не-пустую ячейку.

 

ФОРМАТ ВЫВОДА:

Выведите количество триплетов \(i, j, k\) (\(i < j < k\)) таких, что куски \(i\), \(j\), и \(k\) могут составить исходную фигурку коровы.

 

ПРИМЕР ВВОДА:


5
5 5
aaaaa
..a..
bbabb
..a..
aaaaa
3 5
..abb
..a..
aaaaa
5 2
a.
a.
aa
a.
a.
1 2
bb
1 5
bbabb
2 5
aaaaa
..a..

ПРИМЕР ВЫВОДА:


3

Эти три решения используют куски \((0, 1, 2)\), \((0, 2, 4)\), \((1, 3, 4)\). Заметим, что эта задача имеет 6 секунд на тест (а для Питона и Java - 12)

 

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

Форма этой коровы описывается решёткой из \(N \times N\) символов (\(3 \leq N \leq 8\)), пример показан ниже, где символы '#' представляют часть коровы, а символы '.' не части коровы.

...............
...............
...............
#..#...........
####...........
############...
.##.#########..
....#######.##.
....##...##....
....##...##....
...............
...............
...............
...............
...............

К несчастью, ФД ещё не спел купить корову, как в магазинчик ворвался бык, который поломал всё вокруг, включая корову ФД. Корова разломалась на две части, которые затерялись среди других \(K\) (\(3 \leq K \leq 10\)) кусков стекла на полу. Каждый из этих \(K\) кусков описывается решёткой \(N \times N\) символов, как и исходная фигурка.

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

ФД может двигать оба куска горизонтально и/или вертикально на любое количество позиций, но так, чтобы все символы '#' оставались внутри решётки \(N \times N\). Форма каждого из кусков необязательно состоит из связного региона символов '#'. Но при сдвиге все они сдвигаются на одинаковое количество позиций.

ФОРМАТ ВВОДА (файл bcs.in):

Первая строка ввода содержит \(N\) и \(K\). Следующие \(N\) строк описывают исходную фигурку ФД. Следующие \(KN\) строк задают \(K\) решёток символов, описывающих \(K\) кусков, которые ФД нашёл на полу.

ФОРМАТ ВЫВОДА (файл bcs.out):

Выведите одну строку, содержащую два разделённых пробелом целых числа, каждое в интервале \(1 \ldots K\), указывающих индексы двух кусков коровы ФД. Решение всегда существует и уникально. Числа, которые Вы выведете, должны быть в порядке возрастания.

Odometer#89951

Коровы Фермера Джона путешествуют. Одометр в их автомобиле показывает целое значение преодолённого расстояния в милях, начиная с X (100 <= X <= 10^18) миль в начале путешествия и Y (X <= Y <= 10^18) миль в конце путешествия. Когда одометр показывает «интересное» число, коровы мычат. Число является интересным, если у него все цифры одинаковые, кроме одной (ведущие нули не рассматриваются в качестве цифр). Например, числа 33323 и 110 – «интересные», а числа 9779 и 55555 – нет.
Помогите ФД посчитать, сколько раз коровы промычат во время путешествия,
Help FJ count how many times the cows will moo during the trip.
PROBLEM NAME: odometer
Формат ввода:
* Строка 1: Первая строка содержит два целых числа, X и Y, разделённых пробелом.
Примечание
В начале путешествия на одометре 110, а в конце – 133.
Формат вывода:
* Строка 1: Одно целое число – сколько раз промычат коровы во время путешествия.


Примечание Коровы промычат, когда на одометре будут следующие числа: 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 131, 133.

Odometer#89945

Коровы Фермера Джона путешествуют. Одометр в их автомобиле показывает целое значение преодолённого расстояния в милях, начиная с X (100 <= X <= 10^16) миль в начале путешествия и Y (X <= Y <= 10^16) миль в конце путешествия. Когда одометр показывает «интересное» число, коровы мычат. Число является интересным, если у него все цифры одинаковые, кроме одной (ведущие нули не рассматриваются в качестве цифр). Например, числа 33323 и 110 – «интересные», а числа 9779 и 55555 – нет.
Помогите ФД посчитать, сколько раз коровы промычат во время путешествия,
Help FJ count how many times the cows will moo during the trip.
Для половины тестов X <= Y <= 10^6.
Заметим, что для хранения таких чисел, как 10^16 требуется тип «64-битное целое Число», такой как long long в C/C++.
PROBLEM NAME: odometer
Формат ввода:
* Строка 1: Первая строка содержит два целых числа, X и Y, разделённых пробелом.
Примечание
В начале путешествия на одометре 110, а в конце – 133.
Формат вывода:
* Строка 1: Одно целое число – сколько раз промычат коровы во время путешествия.


Примечание Коровы промычат, когда на одометре будут следующие числа: 110, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 131, 133.


12 коров Фермера Джона прибыли на зимние Му-олимпийские игры этого года, каждая с уровнем лыжного мастерства от 1 до 1,000,000.
ФД хочет разделить их на 4 команды по 3 так, чтобы получились команды, сбалансированные в смысле суммарного уровня мастерства (уровень мастерства команды определяется как сумма уровней мастерства коров в команде).
Точнее, он хочет минимизировать S – s, где S и s – максимальный и минимальный уровни мастерства команд. Это обеспечивает, что различие между самой сильной и самой слабой командой будет минимально.
Помогите ФД определить минимально возможное значение S-s.
PROBLEM NAME: bteams
Формат входных данных
* Строки 1..12: Каждая строка содержит уровень мастерства одной коровы.
Формат выходных данных
* Строка 1: минимально возможное значение S - s.
Примечание
Одно из возможных решений разделить коровы на команды так: (12,1,7), (9,8,3), (10,5,4), (11,2,6). У первых двух суммарный уровень мастерства 20, а у вторых двух – 19.
Haywire#89908

N коров (4 <= N <= 12, N четное), построили примитивную систему для проводной коммуникации пар дружественных коров
Каждая корова имеет ровно 3 друзей в амбаре и коровы должны занять один ряд в амбаре из N стойл. Провод длины L требуется, чтобы соединить друзей в стойлах на расстоянии L. Например, если друзья находятся в стойлах 4 и 7, то требуется провод длины 3, чтобы их соединить.
Каждая пара коров должна быть соединена отдельным проводом. Определите минимальную длину провода, требуемую для организации такой сети наилучшим образом.
PROBLEM NAME: haywire
Формат входных данных
* Строка 1: Цело число N. Коровы пронумерованы 1..N.
* Строки 2..1+N: Каждая строка содержит три разделенных пробелом целых числа в диапазоне от 1 до N. Строка i+1 содержит числовые идентификаторы трех друзей коровы i. Если корова i дружит с коровой j, то и корова j дружит с коровой i.
Формат выходных данных
* Строка 1: Минимальная суммарная длина провода, чтобы соединить все пары дружественных коров.
Примечание
Лучшее упорядочивание коров есть 6, 5, 1, 4, 2, 3, и оно требует только 17 единиц длины провода.

Фермер Джон любит коллекционировать как можно больше типов коров, кроме нескольких типов, которые перечислены в специальном списке из N строк (1 <= N <= 100). Этот список выглядит так:
Farmer John has no large brown noisy cow. Farmer John has no small white silent cow. Farmer John has no large spotted noisy cow.
Каждый элемент списка описывает недопустимый тип в виде короткого списка прилагательных, и содержит одно и то же количество прилагательных (3, в данном примере). Количество прилагательных в строке содержится в диапазоне от 2 до 30.
У ФД имеется корова подходящая под каждую возможную комбинацию прилагательных, не имеющуюся в этом списке. В данном примере первое прилагательное имеет два значения (large, small); второе – три (brown, white, spotted), а третье – два (noisy, silent). Это даёт 2*3*2 = 12 различных комбинаций и у ФД есть корова для каждой из них, кроме тех, которые указаны в списке. Например large, white, noisy – одна из его 9 коров. У ФД не более 1,000,000,000 коров.
Если ФД упорядочит описания своих коров по алфавиту – какая корова будет K-ая по списку?
Частичное оценивание: Из 10 тестов на задачу в тестах 1..4 будет не более двух прилагательных в строке списка. В тестах 1..6 каждое из прилагательных будет иметь ровно 2 различных значения (во всех других тестах каждое прилагательное может иметь от 1 до N различных значений).
PROBLEM NAME: nocow
Формат входных данных
* Строка 1: Два целых числа, N и K.
* Строки 2..1+N: Каждая строка содержит предложение вида "Farmer John has no large spotted noisy cow.". Каждое прилагательное в этом списке – строка не более 10 маленьких латинских букв Конец предложения определяется символами "cow."
Формат выходных данных
* Строка 1: Описание K-ой коровы на ферме.
Примечание
Вот список имеющихся коров в алфавитном порядке
large brown silent large spotted silent large white noisy large white silent small brown noisy small brown silent small spotted noisy small spotted silent small white noisy
7-ая корова в этом списке - "small spotted noisy".

Фермер Джон любит коллекционировать как можно больше типов коров, кроме нескольких типов, которые перечислены в специальном списке из N строк (1 <= N <= 100). Этот список выглядит так:
Farmer John has no large brown noisy cow. Farmer John has no small white silent cow. Farmer John has no large spotted noisy cow.
Каждый элемент списка описывает недопустимый тип в виде короткого списка прилагательных, и содержит одно и то же количество прилагательных (3, в данном примере). Количество прилагательных в строке содержится в диапазоне от 2 до 30.
У ФД имеется корова подходящая под каждую возможную комбинацию прилагательных, не имеющуюся в этом списке. В данном примере первое прилагательное имеет два значения (large, small); второе – три (brown, white, spotted), а третье – два (noisy, silent). Это даёт 2*3*2 = 12 различных комбинаций и у ФД есть корова для каждой из них, кроме тех, которые указаны в списке. Например large, white, noisy – одна из его 9 коров. У ФД не более 1,000,000,000 коров.
Если ФД упорядочит описания своих коров по алфавиту – какая корова будет K-ая по списку?
Частичное оценивание: Из 10 тестов на задачу в тестах 1..4 будет не более двух прилагательных в строке списка. В тестах 1..6 каждое из прилагательных будет иметь ровно 2 различных значения (во всех других тестах каждое прилагательное может иметь от 1 до N различных значений).
PROBLEM NAME: nocow
Формат входных данных
* Строка 1: Два целых числа, N и K.
* Строки 2..1+N: Каждая строка содержит предложение вида "Farmer John has no large spotted noisy cow.". Каждое прилагательное в этом списке – строка не более 10 маленьких латинских букв Конец предложения определяется символами "cow."
Формат выходных данных
* Строка 1: Описание K-ой коровы на ферме.
Примечание
Вот список имеющихся коров в алфавитном порядке
large brown silent large spotted silent large white noisy large white silent small brown noisy small brown silent small spotted noisy small spotted silent small white noisy
7-ая корова в этом списке - "small spotted noisy".

Фермер Джон купил комбинаторный замок на двери, чтобы коровы не разбежались. Зная, что его коровы очень умные, ФД хочет сделать нелёгким дело открытия замка простым перебором большого числа различных комбинаций. На замке имеется три диска с числами от 1 до N (1 По заданным комбинациям ФД и мастер-шифру, определите количество различных установок дисков, которые откроют замок. Порядок имеет значение, поэтому комбинация (1,2,3) отличается от комбинации (3,2,1).
PROBLEM NAME: combo
Формат входных данных
* Строка 1: Целое число N.
* Строка 2: Три разделенных пробелом целых числа, указывающих комбинацию ФД
* Строка 3: Три разделенных пробелом целых числа, указывающих комбинацию мастер-шифра (возможно совпадающую с комбинацией ФД).
Формат выходных данных
* Строка 1: Количество различных установок дисков открывающих замок.
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*N символов ( и ). Начиная с левого верхнего угла массива нужно пройти, выбирая символы так, чтобы построенная строка была совершенно сбалансированной и имела максимальную длину.
На каждом шагу можно двигаться вверх, вниз, влево или вправо, но нельзя заходить в одну и ту же клетку более одного раза. Можно зайти не во все клетки.
PROBLEM NAME: hshoe
Формат входных данных
* Строка 1: Целое число N (2 <= N <= 5).
* Строки 2..N+1: Каждая строка содержит строку из N скобок. Все вместе эти строки описывают решетку N*N.
Формат выходных данных
* Line 1:Длина наибольшей совершенно сбалансированной строки. Если Беси не может построить совершенно сбалансированную строку например, если левый верхний угол содержит символ )., то выведите 0.


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


Каждый день Фермер Джон обходит свою ферму, чтобы проведать N (1 <= N <= 10) своих коров.
Местоположение каждой из его коров описывается точкой на координатной плоскости, а ФД начинает в точке (0,0). Чтобы сделать маршрут более интересным, ФД ходит только параллельно осям координат (на север, юг, восток и запад). Он меняет направление своего движения, только когда он добирается до одной из коров. Если пожелает, он может не менять направление своего движения, проходя через местоположение коровы. Когда ФД меняет направление движения, он может менять его на 90 или 180 градусов. ФД должен вернутся в исходную точку после посещения всех коров.
Пожалуйста, вычислите общее количество способов, которыми ФД может посетить всех своих коров, если он изменит направление своего движения ровно один раз у каждой коровы. Не изменяя направление движения, он может ходить мимо коровы произвольное количество раз. Один и тот же геометрический путь, пройденный в прямом и обратном направлениях, считается как два различных маршрута.
PROBLEM NAME: connect
Формат входных данных
* Строка 1: Целое число N.
* Строки 2..1+N: Строка i+1 содержит x и y координаты (разделенные пробелом) для i-ой точки(все числа в диапазоне -1000...1000).
Формат выходных данных
* Строка 1: Количество различных маршрутов ФД (может быть равным 0, если их нет)


Примечание
Всего есть два различных маршрута 1-2-4-3 или 3-4-2-1 прежде чем ФД вернется в точку (0,0).


Деньги кончились, и теперь ферма Джона имеет размер 5*5 метров. Поле (1,1) находится в левом верхнем углу, поле (5,5) - в правом нижнем.
(1,1) (1,2) (1,3) (1,4) (1,5) (2,1) (2,2) (2,3) (2,4) (2,5) (3,1) (3,2) (3,3) (3,4) (3,5) (4,1) (4,2) (4,3) (4,4) (4,5) (5,1) (5,2) (5,3) (5,4) (5,5)
Каждый квадрат этой решетки содержит траву, кроме K выжженных Квадратов (0 <= K <= 22, K четное) квадратов, где нет травы. Беси начинает пастись в квадрате (1,1), в котором всегда есть трава. Милдред начинает пастись в клетке (5,5), где тоже всегда есть трава.
Каждые полчаса Беси и Милдред съедают всю траву в своем квадрате и переходят в соседний квадрат (на север, юг, запад или восток). Они хотят съесть всю траву и встретиться в общей финальной позиции. Пожалуйста, вычислите количество различных способов сделать это. Беси и Милдред всегда двигаются только в квадрат с травой и никогда не идут в один и тот же квадрат, если это не самый последний квадрат с травой.
PROBLEM NAME: grazing
Формат входных данных
* Строка 1: Целое число K.
* Строки 2..1+K: Каждая строка содержит координаты (I,j) клетки без травы - два целых числа I и J через пробел.

Формат выходных данных
Строка 1: Количество различных способов Беси и Милдред пройти по полю, съесть всю траву и встретиться в одной и той же клетке.
Примечание
Есть только один способ - встретиться в клетке (3,5), пройдя указанными на рисунке ниже маршрутами
b b--b b--b | | | | | b--b b--b b | x x x x b/m | m--m--m--m--m | m--m--m--m--m

Cow IDs#89821

Фермер Джон пометил всех своих коров двоичными числами. Однако не любыми, а только такими, в которых ровно K единиц. (1<=K<=10). Конечно, лидирующий бит каждой метки равен 1. ФД назначает метки в порядке возрастания чисел, начиная от самой маленькой корректной метки (K-битного числа, состоящего из всех единиц). Теперь он нуждается в Вашей помощи: определите N-ую метку, которую он должен назначить (1 <= N <= 10^7).
PROBLEM NAME: cowids
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа, N и K.
Формат выходных данныхдвоичное число
Поделиться
Класснуть