제출 #467938

#제출 시각아이디문제언어결과실행 시간메모리
467938czhang2718시간이 돈 (balkan11_timeismoney)C++14
0 / 100
6 ms716 KiB
#include "bits/stdc++.h"
using namespace std;

int n, m;
const int N=200;
int par[N];
vector<pair<int, pair<int, int>>> edges;

int find(int x){
  if(par[x]==x) return x;
  return par[x]=find(par[x]);
}

bool join(int x, int y){
  if(find(x)==find(y)) return 0;
  par[find(x)]=find(y);
  return 1;
}

int main(){
  cin.tie(0)->sync_with_stdio(0);
  // freopen("input.txt", "r", stdin);
  // freopen("output.txt", "w", stdout);

  cin >> n >> m;
  for(int i=0; i<n; i++) par[i]=i;
  for(int i=0; i<m; i++){
    int u, v, c, t; cin >> u >> v >> c >> t;
    edges.push_back({c, {u, v}});
  }
  int ans=0;
  sort(edges.begin(), edges.end());
  for(auto p:edges){
    int u=p.second.first;
    int v=p.second.second;
    if(join(u, v)) ans+=p.first;
  }
  cout << ans*ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...