그래프와 연결성 쿼리

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

요약
각 쿼리마다 주어진 번호 범위의 간선만 사용할 때 서로 연결된 정점 쌍의 수를 구한다.
난이도

어려움10점 중 9점

유형
유니온 파인드, 분할 정복, 세그먼트 트리, 그래프
정답자
아직 제출이 없습니다

문제

정점이 NN개, 간선이 MM개인 무방향 그래프가 주어진다. 간선은 11번부터 MM번까지 번호가 매겨져 있으며, 자기 자신으로 향하는 간선(셀프 루프)이나 중복 간선은 존재하지 않는다.

이 때 다음 쿼리를 처리하는 프로그램을 작성하시오.

  • ll rr: 간선 번호가 ll번 이상 rr번 이하인 간선들만 사용할 수 있을 때, 서로 연결되어 있는 정점 쌍 (u,v)(u, v) (1≤u<v≤N)(1 \le u < v \le N)의 개수를 출력한다.

입력

첫 번째 줄에 정수 NN, MM, QQ가 공백으로 구분되어 주어진다. (1≤N,M,Q≤100,000)(1 \le N, M, Q \le 100\\,000)

다음 MM개의 줄에는 간선 정보가 주어진다.

각 줄에는 두 정수 a_ia\_i, b_ib\_i (1≤a_i,b_i≤N; a_i≠b_i)(1 \le a\_i, b\_i \le N;\ a\_i \ne b\_i)가 공백으로 구분되어 주어지며, 이는 ii번째 간선이 정점 a_ia\_i와 정점 b_ib\_i를 잇는 무방향 간선임을 의미한다. 중복 간선은 주어지지 않는다.

그 다음 QQ개의 줄에는 쿼리가 주어진다.

각 줄에는 두 정수 ll, rr (1≤l≤r≤M)(1 \le l \le r \le M)가 공백으로 구분되어 주어진다.

출력

각 줄에 쿼리의 정답을 출력한다.

예제1

  1. 예제 1

    입력
    4 5 5
    1 2
    1 3
    2 3
    1 4
    4 3
    1 3
    1 2
    3 4
    3 5
    4 5
    
    예상 출력
    3
    3
    2
    6
    3