树是一个没有圈的无向连通图。两个顶点之间的距离是它们之间简单路径中的边数。
利马克是一只小北极熊。他住在一棵由n个顶点组成的树中,编号为1到n。
利马克最近学会了跳。他最多可以从一个顶点跳到距离k以内的任何顶点。
对于一对顶点(s, t) 我们定义f(s, t) 因为Limak需要从s到t的最小跳跃次数。您的任务是找到f(s, t) 在所有顶点对(s, t) 这样 s < t。
A tree is an undirected connected graph without cycles. The distance between two vertices is the number of edges in a simple path between them.
Limak is a little polar bear. He lives in a tree that consists of
n vertices, numbered
1 through
n.
Limak recently learned how to jump. He can jump from a vertex to any vertex within distance at most
k.
For a pair of vertices
(s,t) we define
f(s,t) as the minimum number of jumps Limak needs to get from
s to
t. Your task is to find the sum of
f(s,t) over all pairs of vertices
(s,t) such that
s<t.
Output
Print one integer, denoting the sum of
f(s,t) over all pairs of vertices
(s,t) such that
s<t.
Note
In the first sample, the given tree has
6 vertices and it's displayed on the drawing below. Limak can jump to any vertex within distance at most
2. For example, from the vertex
5 he can jump to any of vertices:
1,
2 and
4 (well, he can also jump to the vertex
5 itself).
There are
pairs of vertices
(s,t) such that
s<t. For
5 of those pairs Limak would need two jumps:
(1,6),(3,4),(3,5),(3,6),(5,6). For other
10 pairs one jump is enough. So, the answer is
5·2+10·1=20.
In the third sample, Limak can jump between every two vertices directly. There are
3 pairs of vertices
(s<t), so the answer is
3·1=3.