Kết nối đỉnh đặc biệt

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho đồ thị vô hướng có trọng số gồm \(N\) đỉnh và \(M\) cạnh. Có \(K\) đỉnh đặc biệt cần được kết nối.

Hãy tìm tổng trọng số nhỏ nhất của một cây con chứa tất cả các đỉnh đặc biệt.

Input

  • Dòng đầu gồm ba số nguyên \(N\), \(M\), \(K\).
  • Dòng thứ hai gồm \(K\) số nguyên là các đỉnh đặc biệt.
  • \(M\) dòng tiếp theo, mỗi dòng gồm ba số nguyên \(u\), \(v\), \(w\), biểu diễn một cạnh nối \(u\)\(v\) có trọng số \(w\).

Output

  • In ra một số nguyên duy nhất là bình phương tổng trọng số nhỏ nhất của cây con thỏa mãn.

Constraints

  • \(1 ≤ N ≤ 500\)
  • \(N - 1 ≤ M ≤ 5000\)
  • \(1 ≤ K ≤ 15\)
  • \(1 ≤ u, v ≤ N\)
  • \(1 ≤ w ≤ 10^9\)

Example

Test 1

Input
5 6 3
1 3 5
1 2 1
2 3 2
2 4 3
3 5 1
4 5 2
1 5 10
Output
16

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.