# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
823906 | tch1cherin | Joker (BOI20_joker) | C++17 | 561 ms | 50548 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
struct dsu {
int size;
int _bipartite;
vector<vector<pair<int*, int>>> updates;
vector<int> parent, rank;
dsu(int _size) : size(_size), _bipartite(1), parent(2 * _size, -1), rank(2 * _size, 1) {}
int _get(int u) {
return parent[u] == -1 ? u : _get(parent[u]);
}
void _unite(int u, int v) {
u = _get(u), v = _get(v);
if (u != v) {
if (rank[u] < rank[v]) {
swap(u, v);
}
updates.back().push_back(pair {&parent[v], parent[v]});
updates.back().push_back(pair {&rank[u], rank[u]});
parent[v] = u;
rank[u] += rank[v];
}
}
void unite(int u, int v) {
updates.push_back({});
# | 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... |