В тактике футбола одним из основных понятий является схема игры. Она определяет, сколько из десяти полевых игроков будут играть в защите, сколько — в полузащите и сколько — в нападении.
Например, схема игры 5-3-2 означает, что в команде пять защитников, три полузащитника и два нападающих. В соответствии с современными представлениями на схему игры накладываются следующие ограничения: должно быть не менее одного и не более пяти защитников, не менее одного и не более пяти полузащитников и не более трех нападающих. Отметим, что нападающих может в команде и не быть совсем. Будем рассматривать только такие схемы.
Будем считать, что футбольное поле имеет длину 120 метров и ширину 80 метров. Введем на нем прямоугольную декартову систему координат таким образом, как показано на рисунке. Ворота рассматриваемой нами команды находятся слева.
Будем также считать, что игрок в некоторый момент времени находится в линии полузащиты, если он находится на расстоянии не более 20 метров от центральной линии. Соответственно, игрок находится в линии защиты, если он находится не более чем в 40 метрах от «своей» лицевой линии, и в линии нападения, если находится не более чем в 40 метрах от «чужой» лицевой линии.
Например, в ситуации, изображенной на рисунке, в линии защиты находятся четыре игрока, в линии полузащиты — три, в линии нападения — также три.
В процессе игры некоторые игроки могут перемещаться из одной линии в другую. В этой задаче будем считать, что возможно перемещение из полузащиты в защиту (и обратно) и из полузащиты в нападение (и обратно). Таким образом, игрок, который в соответствии со схемой игры является защитником, не может оказаться в линии нападения, и наоборот — игрок, который в соответствии со схемой игры является нападающим, не может оказаться в линии защиты. Кроме этого, в соответствии с установкой тренера из каждой линии в каждую могло перейти не более двух игроков.
Ваша задача состоит в том, чтобы написать программу, которая по положениям игроков в некоторый момент времени найдет все возможные схемы игры, при которых в течение игры могло возникнуть такое расположение игроков.
Входной файл содержит десять строк, содержащих по два целых числа xi и yi каждая, — координаты каждого из игроков команды (0 ≤ xi ≤ 120, xi ≠ 40, xi ≠ 80, 0 ≤ yi ≤ 80).
В первой строке выходного файла выведите k — число схем игры, по которым может играть команда. В последующих k строках в произвольном порядке выведите описание каждой из этих схем. Следуйте формату данных, приведенному в примере.
97 0 13 18 2 6 119 11 42 21 72 80 75 78 106 45 22 67 28 47
9 2-5-3 3-5-2 3-4-3 4-5-1 4-4-2 4-3-3 5-4-1 5-3-2 5-2-3
Рассматриваются все разбиения натурального числа \(N\) на сумму \(К\) неотрицательных слагаемых (\(1 \leq N \leq 32\), \(2 \leq K \leq 32\)). Суммы, отличающиеся только порядком слагаемых, считаем различными. Упорядочим все разбиения по убыванию первого слагаемого, а при равных первых слагаемых – по убыванию второго слагаемого, а при равных первых и вторых слагаемых – по убыванию третьего слагаемого и т. д. Пронумеруем их. Например, при \(N=4\), \(К=3\) имеем:
Номер | 1 слагаемое | 2 слагаемое | 3 слагаемое |
---|---|---|---|
1 | 4 | 0 | 0 |
2 | 3 | 1 | 0 |
3 | 3 | 0 | 1 |
4 | 2 | 2 | 0 |
5 | 2 | 1 | 1 |
6 | 2 | 0 | 2 |
7 | 1 | 3 | 0 |
8 | 1 | 2 | 1 |
9 | 1 | 1 | 2 |
10 | 1 | 0 | 3 |
11 | 0 | 4 | 0 |
12 | 0 | 3 | 1 |
13 | 0 | 2 | 2 |
14 | 0 | 1 | 3 |
15 | 0 | 0 | 4 |
В первой строке входного файла записана последовательность чисел. Если первое число \(0\), то необходимо найти разбиение по номеру, а если \(1\), то номер по разбиению. В первом случае далее в файле записано количество слагаемых, сумма и номер разбиения. Во втором случае далее в файле записано количество слагаемых \(K\) и затем разбиение (\(K\) неотрицательных чисел, сумма которых \(N\)). Все числа разделены пробелами.
Выведите в выходной файл разбиение либо номер.
0 3 4 9
1 1 2
1 3 0 1 3
14
У мальчика Васи есть \(N\) шоколадок (возможно, разного веса). Вася пригласил к себе в гости \(K\) своих друзей и хочет подарить им шоколадки. Чтобы никому из друзей не было обидно, Вася решил раздать шоколадки так, чтобы каждому другу досталось одно и то же количество шоколада (т.е. суммарный вес шоколадок, доставшихся каждому другу, должен быть одинаковым). Вася может раздать все свои шоколадки, может раздать лишь часть, но, поскольку он — очень гостеприимный мальчик, он не хочет оставлять друзей совсем без шоколада (т.е. сумма весов шоколадок, доставшихся каждому другу, должна быть строго положительной). Все шоколадки красиво упакованы, т.е. делить их на части нельзя.
Определите, сколько у Васи есть способов раздать шоколад своим друзьям. Два способа считайте различными тогда и только тогда, когда существует шоколадка, которая в одном способе досталась некоторому другу, а в другом — другому другу или вовсе не была отдана друзьям.
В первой строке входного файла находятся два натуральных числа \(N\) и \(K\) (\(1 \leq N \leq 15\), \(1 \leq K \leq 15\)) — количество шоколадок у Васи и количество друзей, которых Вася пригласил в гости. Во второй строке содержатся \(N\) натуральных чисел — веса шоколадок. Ни один из весов не превосходит \(1000\).
Выведите в выходной файл одно число — количество способов раздать шоколадки друзьям.
Во втором примере возможные распределения шоколадок следующие:
5 4 1 2 1 1 1
24
3 2 1 1 2
4