Time limit: 1.0s , Memory limit: 256M , Points: 1
Cho đồ thị gồm đỉnh và cạnh, các đỉnh được đánh số từ đến . Giữa hai đỉnh của đồ thị có tối đa một đường đi đơn giữa chúng. Mỗi đỉnh được gán giá trị . Bạn có thể thực hiện thao tác thêm một cạnh nối giữa hai đỉnh và của đồ thị với chi phí , nhưng sau đó hai đỉnh và không được sử dụng để thực hiện các thao tác khác.
Bạn hãy xác định tổng chi phí tối thiểu để thêm các cạnh nối sao cho giữa hai đỉnh bất kỳ của đồ thị đều có đường đi.
Input
- Dòng đầu tiên chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả các cạnh nối .
- Dữ liệu đảm bảo giữa hai đỉnh bất kỳ có tối đa một đường đi đơn nối giữa chúng.
Output
- In ra tổng chi phí nhỏ nhất để thêm các cạnh nối sao cho đồ thị trở thành liên thông. Nếu không tồn tại bất kỳ chuỗi thao tác nào phù hợp, in ra Impossible.
Examples
Sample Input 1
7 5
4 3 5 2 6 2 3
1 3
0 3
5 6
2 1
0 4
Sample Output 1
4
Sample Input 2
5 1
1 1 1 1 1
0 1
Sample Output 2
Impossible
Sample Input 3
4 1
1 1 1 1
0 1
Sample Output 3
4
Notes
Trong ví dụ đầu tiên, tiến hành nối hai đỉnh và của đồ thị với chi phí , lúc này đồ thị trở thành liên thông.
Comments