좋은 경로의 세 쌍

트리에서 세 개의 단순 경로가 서로 정점을 공유하지 않거나 세 쌍 모두 교차하는 경우의 수를 세어 10^9+7로 나눈 나머지를 구한다.

어려움9조합론트리DFS수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

노드가 NN개인 트리가 주어진다. 서로 다른 두 노드를 잇는 단순 경로의 개수를 MM이라고 하면 M=N(N1)/2M = N(N-1)/2이다.

단순 경로 세 개를 순서 없이 고르는 방법은 모두 M(M1)(M2)/6M(M-1)(M-2)/6가지다. 세 경로 (A,B,C)(A, B, C)가 다음 두 조건 중 적어도 하나를 만족하면 좋은 경로의 세 쌍이라고 한다.

  • 세 경로 AA, BB, CC가 모두 서로 다른 노드로 이루어져 있다. 즉 어느 두 경로도 노드를 공유하지 않는다.
  • 세 경로가 모두 교차한다. 즉 AABB가 노드를 적어도 하나 공유하고, AACC도, BBCC도 노드를 적어도 하나 공유한다.

트리가 주어졌을 때 좋은 경로의 세 쌍이 몇 개인지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN (4N300,0004 \le N \le 300{,}000)이 주어진다.

둘째 줄부터 N1N-1개의 줄에 트리의 간선을 이루는 두 정점의 번호가 주어진다. 정점 번호는 11번부터 NN번까지다.

출력

좋은 경로의 세 쌍의 개수를 109+710^9+7로 나눈 나머지를 출력한다.

설명

경로를 양 끝 정점으로 적으면, 노드가 44개이고 간선이 1122, 2233, 3344를 잇는 트리에서 좋은 경로의 세 쌍은 다음 1616개다.

  • (1,2)(1, 2), (1,3)(1, 3), (1,4)(1, 4)
  • (1,2)(1, 2), (1,3)(1, 3), (2,3)(2, 3)
  • (1,2)(1, 2), (1,3)(1, 3), (2,4)(2, 4)
  • (1,2)(1, 2), (1,4)(1, 4), (2,3)(2, 3)
  • (1,2)(1, 2), (1,4)(1, 4), (2,4)(2, 4)
  • (1,2)(1, 2), (2,3)(2, 3), (2,4)(2, 4)
  • (1,3)(1, 3), (1,4)(1, 4), (2,3)(2, 3)
  • (1,3)(1, 3), (1,4)(1, 4), (2,4)(2, 4)
  • (1,3)(1, 3), (1,4)(1, 4), (3,4)(3, 4)
  • (1,3)(1, 3), (2,3)(2, 3), (2,4)(2, 4)
  • (1,3)(1, 3), (2,3)(2, 3), (3,4)(3, 4)
  • (1,3)(1, 3), (2,4)(2, 4), (3,4)(3, 4)
  • (1,4)(1, 4), (2,3)(2, 3), (2,4)(2, 4)
  • (1,4)(1, 4), (2,3)(2, 3), (3,4)(3, 4)
  • (1,4)(1, 4), (2,4)(2, 4), (3,4)(3, 4)
  • (2,3)(2, 3), (2,4)(2, 4), (3,4)(3, 4)