class Solution {public:int minimumCost(int n, vector<vector<int>>& e) {sort(e.begin(), e.end(), [&](vector<int>& lth, vector<int>& rth) {return lth[2] < rth[2];});vector<int> f(n + 1);iota(f.begin(), f.end(), 0);function<int(int)> get = [&](int x) { return x == f[x] ? x : f[x] = get(f[x]); };int res = 0, cnt = 0;for(int i = 0; i < e.size(); i++) {int x = get(e[i][0]), y = get(e[i][1]);if(x == y) continue;f[x] = y;res += e[i][2];cnt ++;}return cnt == n - 1 ? res : -1;}};
