Time limit: 1.0s , Memory limit: 256M , Points: 0 (partial)
Bạn được cho một dãy hoán vị độ dài và một đồ thị gồm đỉnh. Giữa hai đỉnh và của đồ thị có cạnh nối hai chiều khi và chỉ khi và .
Bạn cần xử lý truy vấn, mỗi truy vấn bạn được cho cặp số nguyên , , yêu cầu thực hiện các bước sau theo thứ tự:
- Hoán đổi giá trị của và .
- Cập nhật lại danh sách cạnh của đồ thị dựa trên dãy hoán vị đã thay đổi (thêm hoặc xóa cạnh).
- Đếm số thành phần liên thông của đồ thị.
Lưu ý rằng dãy hoán vị đã thay đổi sẽ được dùng cho truy vấn tiếp theo.
Input
- Dòng đầu tiên chứa số nguyên .
- Dòng thứ hai chứa số nguyên của dãy hoán vị .
- Dòng tiếp theo chứa số nguyên .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả truy vấn.
- Dữ liệu đảm bảo dãy là một dãy hoán vị hợp lệ.
Output
- Với mỗi truy vấn, in ra số thành phần liên thông trên một dòng.
Examples
Sample Input
3
3 1 2
2
2 3
1 2
Sample Output
3
2
Scoring
- Subtask với số điểm:
- Subtask với số điểm:
- Subtask với số điểm: Không có ràng buộc gì thêm
Notes
Trong ví dụ, đồ thị ban đầu có một cạnh nối giữa hai đỉnh .
Ở truy vấn thứ nhất, dãy hoán vị và đồ thị không có cạnh nối. Có tổng cộng thành phần liên thông.
Ở truy vấn thứ hai, dãy hoán vị và đồ thị có một cạnh nối giữa hai đỉnh . Có tổng cộng thành phần liên thông.
Comments