Submission #1249607

#TimeUsernameProblemLanguageResultExecution timeMemory
1249607Ghulam_JunaidWorld Map (IOI25_worldmap)C++20
72 / 100
79 ms9288 KiB
#include <bits/stdc++.h>
#include "worldmap.h"
using namespace std;

const int N = 41;
int n, m, vis[N];
vector<int> g[N], vec;

void rsz(int sz, int x){
    vec.clear();
    while (vec.size() < sz)
        vec.push_back(x);
}

vector<vector<int>> ans;
void dfs(int v){
    vis[v] = 1;
    vec.clear();
    for (int u : g[v]){
        vec.push_back(v);
        vec.push_back(u);
    }
    while (vec.size() < 4 * n - 2)
        vec.push_back(v);
    ans.push_back(vec);
    rsz(4 * n - 2, v);
    ans.push_back(vec);

    for (int u : g[v]){
        if (!vis[u]){
            rsz(4 * n - 2, u);
            ans.push_back(vec);
            dfs(u);
            rsz(4 * n - 2, v);
            ans.push_back(vec);
            continue;
        }
    }
}

vector<vector<int>> create_map(int nn, int mm, vector<int> a, vector<int> b) {
    n = nn, m = mm;
    for (int i = 0; i < m; i ++){
        g[a[i]].push_back(b[i]);
        g[b[i]].push_back(a[i]);
    }
    dfs(1);

    rsz(4 * n - 2, 1);
    while (ans.size() < 4 * n - 2)
        ans.push_back(vec);

    memset(vis, 0, sizeof vis);
    for (int i = 0; i <= n; i ++)
        g[i].clear();
    vector<vector<int>> output;
    output = ans;
    ans.clear();
    return output;
}
#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...