Xây cầu

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho đơn đồ thị vô hướng gồm ~n~ đỉnh và ~m~ cạnh ảo, tức ban đầu đồ thị chưa có cạnh.

Có ~k~ vũ trụ song song khác nhau, vũ trụ song song thứ ~i~ (~1 \leq i \leq k~) được biểu diễn bởi cặp số ~l_i, r_i~ (~l_i \leq r_i~): tất cả cạnh có chỉ số từ ~l_i~ đến ~r_i~ sẽ biến thành cạnh thật, tức sẽ có ~r_i - l_i + 1~ cạnh tồn tại trên đồ thị. Các vũ trụ song song không có khả năng tác động đến nhau.

Với mỗi vũ trụ song song, đếm số lượng thành phần liên thông trên đồ thị.

Input

  • Dòng đầu gồm hai số nguyên ~n, m~ (~1 \leq n, m \leq 50000~).

  • ~m~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~u_i, v_i~ biểu diễn một cạnh vô hướng của đồ thị (~1 \leq u_i, v_i \leq n~, ~u_i \neq v_i~).

  • Dòng tiếp theo chứa số nguyên ~k~ (~1 \leq k \leq 50000~).

  • Dòng thứ ~i~ trong ~k~ dòng tiếp theo chứa hai số nguyên ~l_i, r_i~ (~1 \leq l_i \leq r_i \leq m~) biểu diễn một vũ trụ song song.

Output

Xuất ra ~k~ dòng, dòng thứ ~i~ là đáp án cho vũ trụ song song thứ ~i~.

Scoring

Subtask Điểm Giới hạn
1 ~20\%~ ~n, m, k \leq 2000~.
2 ~30\%~ ~l_i \leq 10~ (~1 \leq i \leq k~) và ~r_i \leq r_{i+1}~ (~1 \leq i \leq k-1~).
3 ~50\%~ Không có ràng buộc gì thêm.

Sample Input 1

3 3
1 2
2 3
1 3
5
1 1
1 2
2 3
3 3
1 3

Sample Output 1

2
1
1
2
1

Sample Input 2

8 6
1 2
2 3
3 1
3 4
4 5
5 3
7
3 5
1 6
1 4
3 6
2 4
2 3
5 6

Sample Output 2

5
4
5
5
5
6
6

Notes

Trong test ví dụ thứ hai, đồ thị "ảo" nhìn như sau:

image

Đồ thị "thật" trong vũ trụ song song đầu tiên nhìn như sau, đồ thị được tô ~5~ màu tương ứng với ~5~ thành phần liên thông:

image


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.