printРабочее место участника

printЗадачи

1901. Столицы

Ограничения: время – 2s/4s, память – 512MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В стране Триландии близятся выборы новых столиц. Столицы в Триландии необычные, поскольку ими являются одновременно сразу три различных города. Такая идея размещения столиц основана на исследованиях эффективности управления страной, выполненных ведущими экономистами Триландии.
Всего в Триландии `n` городов, из которых некоторые пары городов соединены дорогами и по каждой из них можно проехать в обе стороны. Время проезда по каждой дороге в одну сторону равно одному часу. При этом все города соединены дорогами таким образом, что из каждого города можно добраться в любой другой, причем это можно сделать единственным способом, если по каждой дороге проезжать не более одного раза и только в одну сторону.
Как показали результаты проведенных триландскими экономистами исследований, управление страной будет наиболее эффективным, если три столицы будут выбраны так, что время проезда по кратчайшему пути между каждой парой столиц составит ровно `d` часов. Перед проведением выборов необходимо знать, сколько существует различных троек городов, удовлетворяющих описанным выше свойствам. Две тройки городов считаются различными, если в первой тройке есть хотя бы один город, которого нет во второй тройке, и наоборот.
Требуется написать программу, которая по количеству городов в Триландии и описанию дорог находит количество троек городов, которые могут быть столицами.
Формат входного файла
Первая строка входного файла содержит два разделенных пробелом целых числа: количество городов в Триландии `n` и требуемое время в пути между столицами `d` (`3\ ≤\ n\ ≤\ 10^5`, `1\ ≤\ d\ <\ n`). Каждая из последующих `(n–1)` строк содержит описание одной дороги: пару разделенных пробелом различных целых чисел `a_i` и `b_i` — номера городов, которые соединены двусторонней дорогой (`1\ ≤\ a_i\ ≤\ n`, `1\ ≤\ b_i\ ≤\ n`, `a_i\ ≠\ b_i`). Каждая пара городов соединена не более чем одной дорогой.
Формат выходного файла
Выходной файл должен содержать одно целое число — количество подходящих троек городов, которые могут быть выбраны столицами. В случае, если подходящих троек городов не окажется, выходной файл должен содержать ноль.

Пример ввода 1

4 2
1 2
1 3
1 4

Пример вывода 1

1

Пример ввода 2

7 2
1 2
1 3
1 4
5 1
5 6
5 7

Пример вывода 2

5
Пояснения к примерам В первом примере существует единственный способ выбрать три столицы: города с номерами 2, 3 и 4. Рисунок, соответствующий первому примеру, приведен ниже.
24682.png
Во втором примере существует четыре варианта выбора трёх столиц из четверки городов: 2, 3, 4 и 5. Можно также выбрать столицами города с номерами 1, 6 и 7. Рисунок, соответствующий второму примеру, приведен ниже.
24683.png
Система оценивания
Правильные решения для тестов, в которых `3\ ≤\ n\ ≤\ 50`, будут оцениваться из 20 баллов.
Правильные решения для тестов, в которых `3\ ≤\ n\ ≤\ 500`, будут оцениваться из 40 баллов.
Правильные решения для тестов, в которых `3\ ≤\ n\ ≤\ 5000`, будут оцениваться из 60 баллов.
Источник: региональный этап Всероссийской олимпиады по информатике 2012/2013, http://neerc.ifmo.ru/school/
loading