# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1084781 | abczz | 열쇠 (IOI21_keys) | C++17 | 3099 ms | 42628 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <vector>
#include <iostream>
#include <array>
#include <map>
#define ll long long
using namespace std;
ll n, m, f, cnt, A[300000], sz[300000], szout[300000], done[300000], P[300000];
vector <ll> V;
bool visited[300000];
map <ll, ll> keys[300000], edge[300000];
map <ll, vector<ll>> out[300000];
ll dsu(ll u) {
if (P[u] == u) return u;
else return P[u] = dsu(P[u]);
}
void merge(ll u, ll v) {
if (edge[u].size() < edge[v].size()) {
for (auto [x, y] : edge[u]) ++edge[v][dsu(x)];
swap(edge[u], edge[v]);
}
else {
for (auto [x, y] : edge[v]) ++edge[u][dsu(x)];
}
if (keys[u].size()+szout[v] < keys[v].size()+szout[u]) {
for (auto [x, y] : keys[u]) {
if (out[v].count(x)) {
# | 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... |