# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
536143 | lunchbox | Swapping Cities (APIO20_swap) | C++17 | 185 ms | 15040 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>
#include "swap.h"
using namespace std;
const int INF = 0x3f3f3f3f;
vector<int> ds, ww1, ww2;
int find(int i) {
return ds[i] < 0 ? i : find(ds[i]);
}
void join(int i, int j, int w, int bridge) {
i = find(i);
j = find(j);
if (i == j)
ww2[i] = min(ww2[i], w);
else {
if (ds[i] > ds[j])
swap(i, j);
ds[i] += ds[j], ds[j] = i;
ww1[j] = w;
ww2[i] = min(ww2[i], max(w, bridge ? 0 : ww2[j]));
}
}
void init(int n, int m, std::vector<int> ii, std::vector<int> jj, std::vector<int> ww) {
vector<int> hh(m), dd(n);
for (int i = 0; i < m; i++)
hh[i] = 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |