Submission #1352815

#TimeUsernameProblemLanguageResultExecution timeMemory
1352815d4n13lWorld Map (IOI25_worldmap)C++20
0 / 100
1 ms352 KiB
#include "worldmap.h"
#include <bits/stdc++.h>

using namespace std;

vector <vector <int> > adj;
vector <bool> visited;
vector <int> ord;

void dfs(int v) {
    visited[v]=true;
    ord.push_back(v);
    for (auto u: adj[v]) {
        if (!visited[u]) {
            dfs(u);
            ord.push_back(v);
        }
    }
}

std::vector<std::vector<int>> create_map(int n, int m, std::vector<int> a, std::vector<int> b) {
    adj = vector <vector <int> > (n+1);
    visited=vector <bool> (n+1);
    //cout << "here" << endl;
    for (int i = 0; i < m; i++) {
        adj[a[i]].push_back(b[i]);
        adj[b[i]].push_back(a[i]);
    }
    vector <vector <int> > ans;
    dfs(1);
    //cout << "order size is " << ord.size() << endl;
    vector <int> seen(n+1);
    for (int i = 0; i < ord.size(); i++) {
        //cout << ord[i] << " ";
        if (!seen[ord[i]]) {
            vector <int> v;
            for (int j = 0; j < 2*n+2; j++) {
                v.push_back(ord[i]);
            }
            ans.push_back(v);
            vector <int> sec;
            for (auto u: adj[ord[i]]) {
                sec.push_back(ord[i]);
                sec.push_back(u);
            }
            sec.push_back(ord[i]);
            ans.push_back(sec);
            ans.push_back(v);
            seen[ord[i]]=true;
        } else {
            vector <int> v;
            for (int j = 0; j < 2*n+2; j++) {
                v.push_back(ord[i]);
            }
            ans.push_back(v);
        }
    }
    //cout << endl;
    //cout << "here" << endl;
    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...