Олимпиадный тренинг

Задача . Tree Depth


Задача

Темы:
На Новый год Фермер Джон решил подарить своим коровам праздничное двоичное дерево поиска (BST)

Чтобы сгенерировать это BST, ФД начинает с перестановки \(a=\{a_1,a_2,\ldots,a_N\}\) целых чисел \(1\ldots N\), где \(N\le 300\). Затем он выполняет следующий псевдокод с аргументами \(1\) and \(N\).

generate(l,r):
  if l > r, return empty subtree;
  x = argminl <= i <= r ai; // index of min ai in {al,...,ar}
  return a BST with x as the root, 
    generate(l,x-1) as the left subtree,
    generate(x+1,r) as the right subtree;

Например, перестановка \(\{3,2,5,1,4\}\) сгенерирует такое BST

    4
   / \
  2   5
 / \ 
1   3

Пусть \(d_i(a)\) обозначает глубину вершины \(i\) в дереве, соотвествующем \(a\), то есть количество вершин на пути из \(a_i\) к корню. В примере выше, \(d_4(a)=1, d_2(a)=d_5(a)=2,\) and \(d_1(a)=d_3(a)=3\).

Количество инверсий \(a\) равно количеству пар целых чисел \((i,j)\), таких что \(1\le i<j\le N\) и \(a_i>a_j\). Коровы знают, что \(a\), которую ФД использовал для генерации BST, имеет ровно \(K\) инверсий \((0\le K\le \frac{N(N-1)}{2})\). Среди всех перестановок \(a\), удовлетворяющих этому условию, вычислите Остаток, когда \(\sum_ad_i(a)\) поделено на \(M\) для каждого \(1\le i\le N\).

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

Единственная строка ввода содержит три разделённых одиночными пробелами целых числа: \(N, K\), \(M\), за которыми идёт перевод строки. \(M\) будет простым числом в интервале \([10^8,10^9+9]\).

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

Выведите \(N\) разделённых одиночными пробелами целых чисел, обозначающих \(\sum_ad_i(a)\pmod{M}\) для каждого \(1\le i\le N.\)

ОЦЕНИВАНИЕ (по группам) :

  • Тесты 3-4 удовлетворяют \(N\le 8.\)
  • Тесты 5-7 удовлетворяют \(N\le 20.\)
  • Тесты 8-10 удовлетворяют \(N\le 50.\)


Примеры
Входные данныеВыходные данные
1 3 0 192603497
1 2 3

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя