애완 트리
시간 제한8초메모리 제한1024 MB
트리의 각 간선 길이를 주어진 범위에서 정할 때 지름이 S 이상 E 이하가 되는 조합의 수를 세어 1e9+7로 나눈 나머지를 구한다.
문제
종영이는 애완 트리를 키우고 있다. 이 트리는 개의 정점이 있으며 번째 간선은 두 정점 와 를 잇는다.
요즘 트리에게도 사춘기가 와서, 변덕이 심해 간선들의 길이가 매일 바뀐다. 번째 간선의 길이는 범위의 자연수 중 하나를 가질 수 있다.
트리의 변덕에 짜증이 난 종영이는 참을성이 부족해 트리를 팔아버리기로 했다. 트리는 지름이 이상 이하이면 크기가 적절한 좋은 트리라 생각되어 비싸게 취급된다. 트리의 지름은 트리 상에서 임의의 두 정점 사이의 거리 중 최댓값을 뜻한다.
간선들의 가능한 길이들의 조합은 총 가지임을 알 수 있다. 종영이가 트리를 비싸게 팔아치우는 것을 도와주기 위해 가능한 모든 조합에 대해 트리의 지름이 이상 이하인 경우의 수를 구하여라.
입력
첫 줄에 , , 가 주어진다. (, )
그 후 개의 줄에 걸쳐 트리의 간선들의 정보가 주어진다. 정보는 , , , 순서로 주어진다. (, , )
출력
트리의 지름이 이상 이하인 경우의 수를 로 나눈 나머지를 출력한다.