Cho một đồ thị vô hướng, liên thông gồm n đỉnh và m cạnh. Mỗi cạnh nối hai đỉnh u, v có trọng số w.
Hãy tìm cây khung cực tiểu của đồ thị, tức là tập hợp n−1 cạnh sao cho:
- Tất cả các đỉnh đều được nối với nhau
- Không có chu trình
- Tổng trọng số là nhỏ nhất
Dữ liệu vào: test.inp
- Dòng 1: hai số nguyên n, m
(1 ≤ n ≤ 10^5, 1 ≤ m ≤ 10^5) - m dòng tiếp theo, mỗi dòng gồm 3 số nguyên: u, v, w (biểu thị cạnh nối từ u đến v với trọng số w)
Dữ liệu ra: test.out: Ghi n dòng
- dòng đầu tiên là trọng số của cây
- n-1 dòng còn lại: mỗi dòng gồm 2 số nguyên ui, vi là một cạnh nối 2 đỉnh ui và vi thuộc cây khung cực tiểu.
Chú ý:
- các cạnh có thể in theo bất kỳ thứ tự nào.
- Nếu đồ thị không liên thông → không tồn tại cây khung thì ghi: NO
- Nếu có nhiều cây khung cực tiểu → in ra 1 cây bất kì