Submission #1252235

#TimeUsernameProblemLanguageResultExecution timeMemory
1252235EJIC_B_KEDAXWorld Map (IOI25_worldmap)C++20
7 / 100
30 ms4164 KiB
#include "worldmap.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

vector<vector<int>> create_map(int n, int m, vector<int> a, vector<int> b) {
    vector<vector<int>> g(n);
    for (int i = 0; i < m; i++) {
        a[i]--; b[i]--;
        g[a[i]].push_back(b[i]);
        g[b[i]].push_back(a[i]);
    }
    vector<vector<int>> ans(4 * n, vector<int>(4 * n, -1));
    vector<int> used(n, 0);
    int cur = 0;
    auto dfs = [&](auto dfs, int s) -> void {
        used[s] = 1;
        for (int i = 0; i < 4 * n; i++) {
            ans[cur][i] = s + 1;
        }
        for (int i = 0; i < 4 * n; i++) {
            if (g[s].size() > i) {
                ans[cur + 1][i] = g[s][i] + 1;
            } else {
                ans[cur + 1][i] = s + 1;
            }
        }
        for (int i = 0; i < 4 * n; i++) {
            ans[cur + 2][i] = s + 1;
        }
        cur += 3;
        for (int i : g[s]) {
            if (!used[i]) {
                dfs(dfs, i);
            }
        }
        for (int i = 0; i < 4 * n; i++) {
            ans[cur][i] = s + 1;
        }
        cur++;
    };
    dfs(dfs, 0);
    for (; cur < 4 * n; cur++) {
        ans[cur] = ans[cur - 1];
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...