Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- int main() {
- int N, M, a, b, c, result = 0;
- std::cin >> N >> M;
- std::vector<std::pair<int, std::pair<int, int>>> edges;
- for (int i = 0; i < M; i++) {
- std::cin >> a >> b >> c;
- edges.push_back(std::make_pair(c, std::make_pair(a - 1, b - 1)));
- }
- sort(edges.begin(), edges.end());
- std::vector<int> trees;
- for (int i = 0; i < N; i++) {
- trees.push_back(i);
- }
- for (auto i : edges) {
- if (trees[i.second.first] != trees[i.second.second]) {
- result += i.first;
- int x = trees[i.second.second], y = trees[i.second.first];
- for (int j = 0; j < N; j++) {
- if (trees[j] == x) {
- trees[j] = y;
- }
- }
- }
- }
- std::cout << result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement