A. Лексикографические пути

Задан N-вершинный орграф, в каждой вершине которого записано по строчной букве латинского алфавита. Рассмотрим все пути в этом графе, в том числе состоящие из одной вершины, и выпишем слова, образуемые при прохождении по этим путям (каждое слово выписывается один раз). Требуется найти К-ое в лексикографическом порядке слово.

Входные данные
В первой строке записаны числа N и K (1≤N≤26, 1≤К≤5000).
Последующие N строк содержат описание вершин графа в следующем виде:
<описание i-ой вершины> ::= <символ, записанный в i-й вершине> <число di дуг, исходящих из i-й вершины> <номер вершины, в которую ведёт первая дуга>...<номер вершины, в которую ведёт di-ая дуга>.
Все данные в строке отделены друг от друга пробелом.

Выходные данные
В первой и единственной строке должно содержаться найденное слово.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
2 7
a 2 1 2
b 1 1  
  
aaaaaaa  
  

B. Кладовзрыватель

Лабиринт представляет собой матрицу MxN, некоторые ячейки которой пустые, а остальные заполнены камнями. В одной из пустых ячеек находится клад, а в другой - кладоискатель. Кладоискатель не может находиться в ячейке, заполненной камнем, а также за пределами лабиринта. Кладоискатель может передвигаться в соседнюю (пустую) ячейку (соседними считаются ячейки, граничащие по стороне), тратя на каждое перемещение T1 секунд. Кроме того, у кладоискателя есть K гранат, которые он может использовать для освобождения ячеек от камней, что сделает ранее непроходимую ячейку - проходимой (пустой). Чтобы очистить ячейку от камней, он должен стоять на одной из 4 соседних с этой ячейкой клеток и использовать одну гранату. Взрыв длится T2 сек. (все это время кладоискатель стоит на месте). Какова последовательность действий кладоискателя (перемещений и подрывов), при которой на достижение ячейки с кладом тратится наименьшее время? При наличии нескольких решений вывести то из них, при котором используется наименьшее количество гранат.

Входные данные
Первая строка входного файла содержит числа M, N и К (1≤N,M≤20, 1≤K≤20). Вторая строка содержит целые числа T1, Т2 (1≤Т1,Т2≤100). Следующие M строк содержат описание лабиринта. Каждая строка состоит из N символов, описывающих ячейки лабиринта: заполненная камнями ячейка обозначается латинской буквой 'X', пустая ячейка обозначается символом '.' (ASCII код 46), начальная позиция кладоискателя - буквой 'Y', позиция клада - латинской буквой 'B'.

Выходные данные
Если решения не существует, то файл должен содержать слово 'NO'. Иначе в первой строке выходного файла содержится слово 'YES', а во второй строке содержится последовательность символов, определяющая действия кладоискателя. Символы 'w', 'e', 'n', 's' обозначают передвижения на запад, восток, север и юг соответственно, символы 'W', 'E', 'N', 'S' обозначают взрывы в соответствующих перечисленным направлениям соседних клетках.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
3 3 3
7 60
X.Y
XXX
BXX  
  
YES
wWwSss  
  

C.

Биномиальным коэффициентом C[N,K] называется число N!/(K!*(N-K)!). Требуется подсчитать C[N,K].

Входные данные
В первой строке содержатся целые числа N и К в некотором порядке (NK≥0). Числа разделяются одним пробелом. Длина этой строки не превосходит 255 символов.

Выходные данные
Единственная строка должна содержать искомый биномиальный коэффициент. Гарантируется, что он не превосходит 2147483647.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
4 2  
  
6  
  

D. Рандомизация

Задано натуральное N. Требуется найти перестановку P[1],...,P[N] чисел 1,...,N, доставляющую максимум суммы Sum( ( ( P[i] - P[j] ) / (i - j) )^2, 1 ≤ i < jN ).

Входные данные
В первой строке содержатся натуральное число N (1≤N≤100).

Выходные данные
Единственная строка файла должна содержать найденную перестановку P[1],P[2],..,P[N] (через пробел).

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

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
3  
  
2 3 1