# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
872891 | gggkik | Toll (APIO13_toll) | C++14 | 2 ms | 5980 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct dsu{
vector<int> par;
void init(int x){
par.resize(x+1);
iota(par.begin(),par.end(),0);
}
int find(int x){
return par[x]-x?par[x]=find(par[x]):x;
}
void u(int a,int b){
a = find(a), b = find(b);
if(a!=b) par[a] = b;
}
};
vector<vector<int>> build_mst(int n, vector<vector<int>> edges){
dsu uf; uf.init(n);
sort(edges.begin(),edges.end(),[&](vector<int> &i, vector<int> &j){
return i[2]<j[2];
});
vector<vector<int>> ret;
for(auto &i : edges){
int a = uf.find(i[0]), b = uf.find(i[1]);
if(a!=b) {
uf.u(a,b);
ret.push_back(i);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |