만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

함수와 최소 스패닝 트리

시간 제한3초메모리 제한1024 MB

요약
간선 가중치가 at^2+b_i t+c_i로 주어질 때, t1부터 t2까지 최소 신장 트리 가중치 합의 적분값을 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
최소 신장 트리, 유니온 파인드, 수학
정답자
아직 제출이 없습니다

문제

11부터 VV까지 번호가 붙은 정점이 VV개, 간선이 EE개인 단순 연결그래프가 주어진다.

각 간선의 가중치는 시간 tt에 따라 변하는 이차함수 at2+bit+ciat^2+b_it+c_i 꼴이다. 모든 간선에 대해 aa는 같다.

시간 tt에서의 최소 스패닝 트리의 가중치 합을 f(t)f(t)라고 정의하자.

정수 t1t_1, t2t_2가 주어지면 ∫t1t2f(t)dt\int_{t_1}^{t_2}f(t)dt의 값을 구하시오.

최소 스패닝 트리는 주어진 그래프의 모든 정점을 연결하는 부분 그래프 중에서 가중치의 합이 가장 작은 트리이다.

입력

첫 번째 줄에 정수 VV, EE, aa가 공백으로 구분되어 주어진다. (1≤V≤1001 \le V \le 100, 1≤E≤2501 \le E \le 250, −1 000≤a≤1 000-1\,000 \le a \le 1\,000, a≠0a \neq 0)

다음 EE개의 줄에는 간선의 정보를 나타내는 정수 네 개 XX, YY, bib_i, cic_i가 공백으로 구분되어 주어진다. (1≤X,Y≤V1 \le X, Y \le V, −1 000≤bi,ci≤1 000-1\,000 \le b_i, c_i \le 1\,000)

이는 XX번 정점과 YY번 정점을 잇는 간선의 가중치가 at2+bit+ciat^2+b_it+c_i라는 뜻이다.

마지막 줄에는 시간을 나타내는 정수 t1t_1과 t2t_2가 공백으로 구분되어 주어진다. (−1 000≤t1≤t2≤1 000-1\,000 \le t_1 \le t_2 \le 1\,000)

출력

∫t1t2f(t)dt\int_{t_1}^{t_2}f(t)dt의 값이 정수 mm, 양의 정수 nn에 대하여 기약분수 mn\frac{m}{n}이면, m×n−1 mod (109+7)m\times n^{-1}\bmod (10^9+7)을 출력한다. n−1n^{-1}은 nn의 모듈러 곱셈에 대한 역원이다.

109+710^9+7의 배수가 아닌 nn에 대해서는 답이 위와 같은 꼴로 표현됨을 증명할 수 있다.

힌트

필요하다면 (ab−1)+(cd−1)≡(ad+bc)×(bd)−1(mod109+7)(ab^{-1})+(cd^{-1}) \equiv (ad+bc)\times(bd)^{-1} \pmod {10^9+7}임을 이용할 수 있다.

예제2

  1. 예제 1

    입력
    2 1 3
    2 1 1 4
    -3 7
    
    예상 출력
    430
    
  2. 예제 2

    입력
    3 3 3
    1 2 2 -3
    3 1 1 6
    2 3 -4 12
    -1 10
    
    예상 출력
    800001995