| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1349551 | bangan | World Map (IOI25_worldmap) | C++20 | 38 ms | 7404 KiB |
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) {
vector<vector<int>> ans;
vector<vector<int>> adj(N);
for (int i=0; i<M; i++) {
A[i]--;
B[i]--;
adj[A[i]].pb(B[i]);
adj[B[i]].pb(A[i]);
}
vector<bool> seen(N);
vector<int> ord, h(N), idx(N);
vector<vector<int>> be(N);
auto dfs = [&](auto self, int v) -> void {
seen[v] = true;
ord.pb(v);
idx[v] = ord.size();
ord.pb(v);
ord.pb(v);
for (int u : adj[v]) {
if (!seen[u]) {
h[u] = h[v]+1;
self(self, u);
ord.pb(v);
}
else if (h[u]<h[v]) {
be[v].pb(u);
}
}
};
dfs(dfs, 0);
for (int i=0; i < ord.size(); i++) ord[i]++;
for (int i=0; i < ord.size(); i++) {
for (int i=0; i<N; i++) if (!be[i].empty()) {
ord[idx[i]] = be[i].back()+1;
be[i].pop_back();
}
ans.pb(ord);
for (int i=0; i<N; i++) ord[idx[i]] = i+1;
}
return ans;
}
| # | 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
