# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
308138 | tjdgus4384 | Swapping Cities (APIO20_swap) | C++14 | 527 ms | 36456 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;
vector<int> group[100010];
vector<pair<int, int> > pa[100010];
vector<pair<int, pair<int, int> > > mv;
int p[100010], cycle[100010], outd[100010], sizep[100010], cnt[100010];
int find(int x){
if(p[x] == x) return x;
return find(p[x]);
}
void init(int n, int m, vector<int> u, vector<int> v, vector<int> w){
for(int i = 0;i < n;i++){
sizep[i] = 1; p[i] = i;
group[i].push_back(i);
pa[i].push_back({0, i});
}
for(int i = 0;i < m;i++){
mv.push_back({w[i], {u[i], v[i]}});
}
sort(mv.begin(), mv.end());
/*for(int i = 0;i < m;i++){
printf("%d %d %d\n", mv[i].first, mv[i].second.first, mv[i].second.second);
}*/
for(int i = 0;i < m;i++){
int u1 = find(mv[i].second.first);
int u2 = find(mv[i].second.second);
cnt[mv[i].second.first]++; cnt[mv[i].second.second]++;
if(u1 == u2){
Compilation message (stderr)
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |