1부터 V까지 번호가 붙은 정점이 V개, 간선이 E개인 단순 연결그래프가 주어진다.
각 간선의 가중치는 시간 t에 따라 변화하는 이차함수 at2+b_it+c_i 꼴이다. 모든 간선에 대해 a는 동일하다.
이때 함수 f(t)를 시간 t에서의 최소 스패닝 트리의 가중치의 합으로 정의하자.
정수 t_1, t_2가 주어지면 ∫_t_1t_2f(t)dt의 값을 구하시오.
최소 스패닝 트리란, 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리이다.
첫 번째 줄에 정수 V, E, a가 공백으로 구분되어 주어진다. (1≤V≤100; 1≤E≤250; −1,000≤a≤1,000; a=0)
다음 E개의 줄에 간선의 정보를 나타내는 네 정수 X, Y, b_i, c_i가 공백으로 구분되어 주어진다. (1≤X,Y≤V; −1,000≤b_i,c_i≤1,000)
이는 X번 정점과 Y번 정점을 잇는 간선의 가중치가 at2+b_it+c_i라는 뜻이다.
다음 줄에 시간을 나타내는 정수 t_1과 t_2가 공백으로 구분되어 주어진다. (−1,000≤t_1≤t_2≤1,000)
∫_t_1t_2f(t)dt의 값이 정수 m, 양의 정수 n에 대하여 기약분수 nm일 때, m×n−1mod(109+7)을 출력한다. n−1은 n의 모듈러 곱셈에 대한 역원이다.
답이 109+7의 배수가 아닌 n에 대해 위와 같은 꼴로 표현됨을 증명할 수 있다.
필요하다면 (ab−1)+(cd−1)≡(ad+bc)×(bd)−1(mod109+7)임을 이용할 수 있다.